Python基础语法(上)

目录

一、print函数及常量表达式

1.print函数

2.常量表达式

二、变量

1.定义变量的规则

2.python的动态类型特性

3.字符串

三、注释

四、input函数

1.input函数

2.变量类型转换

五、运算符

1.算数运算符

2.关系运算符

(1)整形的比较

(2)字符串的比较

(3)浮点数的比较

3.逻辑运算符

(1)逻辑运算符的种类

(2)and和or的短路求值

4.赋值运算符

(1)链式赋值

(2)多元赋值

(3)复合赋值

六、选择语句

1.选择语句的写法

(1)单个if

(2)if与else

(3)if、elif与else

2.python的缩进和代码块

3.空语句pass

七、循环语句

1.while循环

2.for循环

3.break与continue语句


继上篇文章我们准备好python的开发工具后,我们继续在pycharm中书写代码。

注意在pycharm中,按Ctrl+Shift+F10运行代码。

python语言以每一行为一句代码,不需要在最后加上分号。

一、print函数及常量表达式

1.print函数

print()是一个全局的输出函数,可以把内部的内容打印到下面的控制台。

print("hello world")#这是最简单的hello world代码

#结果为hello world

python的输出使用fstring类型(function string),在字符串前加f,在需要打印变量值的地方将变量或表达式用{}括起来。

a = 10
print(f"The value of a is {a}")
#输出:The value of a is 10
print(f"The value of a is {a+10}")
#输出:The value of a is 20

2.常量表达式

在print函数中输入加减乘除四则混合运算表达式(+ - * /)打印出表达式的结果,当然同样可以加括号表示先算哪里后算哪里。因此python可以当作简易计算器使用。

print((4+2*2)*(20-2*7))

#结果为48

二、变量

1.定义变量的规则

python的变量类型有整形、浮点型、字符串、布尔类型等等。

在之前C语言的学习中,我们定义变量都是:

变量类型 变量 = 值;(int a = 1;)

而对于python而言,变量定义只需要:

变量名 = 值

不需要在前面显示加类型,变量的类型会根据所赋值的类型确定。

python变量名的定义规则与C语言基本相同(只能由数字、字母、下划线组成,数字不能开头……)

value1 = 1
print(value1)# 打印变量,不需要像C语言一样控制输出的类型
print(type(value1))# type()函数可以看到变量的类型为<class 'int'>,也就是int

value2 = 0.5
print(type(value2))# type()函数可以看到变量的类型为<class 'float'>,也就是double。
#python的浮点数都是C语言中的double类型

#python有自己的字符串类型str,字符串可以由单引号和双引号引起
a1 = "hello world"
a2 = 'hello world'
print(type(a1))#输出<class 'str'>,表示类型为str

#布尔类型(bool)表示真假,只有True和False两种状态,一般用作函数的返回值
judge1 = True
print(type(judge1))
judge2 = False
print(type(judge2))#打印出<class 'bool'>,即bool类型

2.python的动态类型特性

在python程序中,一个变量是什么类型,是可以在 "程序运行" 过程中发生变化的,这个特性称为 "动态类型"。

python变量的类型是可以改变的,我们也可以在变量后面加上类型的声明。

#我先定义一个val变量初始化(定义变量后的第一次赋值叫做初始化)为1,此时类型为int
val = 1
print(val)
#我又改变val变量的内容为字符串,此时类型为str
val = "hello"
print(val)
#我双改变val变量的内容为浮点数,此时类型为double
val = 0.5
print(val)

val:int = 2
#val变量的类型建议指定为int,初始化为2
#但这只是个声明,不是说你后面声明了什么类型,该变量此时就是什么类型的
val:int = "string"
print(type(val))
#输出类型为str

#输出类型为str

此时你惊奇地发现,val变量在运行中类型在不断发生变化,这是C语言无法实现的。

3.字符串

python本身就有自己的字符串类型,字符串可以由单引号和双引号引起。

a1 = "hello world"
a2 = 'hello world'
print(type(a1))
#输出<class 'str'>,表示类型为str


#如果我们字符串内部包含双引号,就可以用单引号(')引起
print('My name is "bob guo"')
#结果为My name is "bob guo"

#如果我们字符串内部包含单引号,就可以用双引号(")引起
print("My name is 'bob guo'")
#结果为My name is 'bob guo'

#如果我们字符串内部既包含单引号又包括双引号,就用三引号(''')引起
print('''My 'name' is "bob guo"''')
#结果为My 'name' is "bob guo"


#查看字符串的长度可以用函数len()
s1 = "hello"
s2 = " world"
print(len(s1))
#print函数打印字符串s1长度为5
#字符串也可以拼接
print(s1+s2)#表示把s1与s2拼接起来,输出为hello world
#要想使用拼接必须是两个字符串类型,int的10和str的s1就不能拼接

三、注释

注释是一种特殊的代码,它不影响程序的执行,但是能够起到解释说明的作用。

单行注释:

#+内容

多行注释:

'''

print(hello)

print( )

print(world)

'''

在pycharm中鼠标选中代码然后点击Ctrl+/进行批量注释。

四、input函数

1.input函数

与C语言中的scanf函数类似,python中的输入函数为input(),且用一个变量接收返回值。

如果我们不指定接收数据的变量的类型,那么系统默认这个变量的类型为str。

a = input("请输入一个值:")
#""中的字符串为输入的提示,输入数据后用变量a接收
print(type(a))
print(f"a的值为:{a}")

#输出:
#请输入一个值:10(10是我自己输入的)
#<class 'str'>
#a的值为:10

2.变量类型转换

通过下面的语句:

变量 = 类型(变量)

可以实现将一个变量转化为该类型的变量。

下面的代码就实现了变量转换并计算数据的平均值。

#输入四个变量的内容,四个变量类型默认为str
a = input("输入第一个数字:")
b = input("输入第一个数字:")
c = input("输入第一个数字:")
d = input("输入第一个数字:")
a = int(a)
b = int(b)
c = int(c)
d = int(d)

#这里的就是把abcd四个变量转化为int类型
e = (a + b + c + d) / 4
print(f"The average value of a、b、c、d is {e}")

# 这些数字都是我自己输入的
# 输入第一个数字:1
# 输入第一个数字:4
# 输入第一个数字:7
# 输入第一个数字:9
# The average value of a、b、c、d is 5.25

五、运算符

1.算数运算符

python的算数运算符与C语言比较类似,但也有一定的区别。

符号

+

-

*

**

/

//

职能

加法

减法

乘法

乘方

小数除法

整数除法

a = 5 % 2
print(a)
b = 5 / 2
print(b)
c = 5 ** 2#表示计算5的平方
d = 4 ** 0.5#表示计算4的0.5次方,也就是开根号
# 乘方也支持小数
print(c)
print(d)

#输出:
# 1
# 2.5
# 25
# 2.0

2.关系运算符

(1)整形的比较

关系运算符用于比较两个变量或表达式的值的大小,与C语言一致,=表示赋值,==表示相等。

符号

>

<

>=

<=

!=

==

职能

大于

小于

大于等于

小于等于

不等于

等于

a = 10
b = 20
print(a > b)
print(a != b)
print(a <= b)
print(a == b)

#输出:
#False
#True
#True
#False

(2)字符串的比较

除比较整数以外,这些符号也可以判断字符串的大小,字典序决定了字符串的大小。

在字符串进行比较时,会先比较两个字符串的第一个字符在字典中出现的顺序(abcd直到z,排在前面的小,排在后面的大)。如果两个字符串第一个字符相同,就再比较第二个,直到比出大小。

#例1:
s1 = "hello"
s2 = "world"
print(s1>s2)
#输出:False
#因为s1首个字母是h,s2首个字母是w,在字母表中w在h的后面,所以w更大,对应s2字符串更大


#例2:
s1 = "hello"
s2 = "hallo"
print(s1>s2)
#输出True
#s1首个字母是h,s2首个字母也是h,字母相同,比较第二个字母
#s1第二个字母是e,s2第二个字母是a,在字母表中e在a的后面,所以e更大,对应s1字符串更大


#例3:
s1 = "hello"
s2 = "hello"
print(s1 == s2)
#输出True
#s1首个字母是h,s2首个字母也是h,字母相同,比较第二个字母也相同,比到最后都是完全一致,相等


#例4:
#字符串的比较只有在比较由英文字母组成的字符串才有意义
s1 = "你好"
s2 = "世界"
print(s1 > s2)
#这里虽然也会给出结果,但是这个结果没有意义

(3)浮点数的比较

python的浮点数比较较为特殊,以下列代码为例:

a = 0.1
b = 0.2
c = 0.3
#错误的方式
print(a + b == c)
#正确的方式
print(-0.000001<a + b - c<0.000001)#输出结果为True
#在数学运算中,0.1+0.2==0.3,但第一种判断a+b==c的时候却打印为False
#这是因为计算机中的大部分浮点数都是不能准确储存的,所以浮点数的比较都是考虑精度的。
#正确的比较方法是让两个数据相减,得到的差的范围足够小就可以看作相等

3.逻辑运算符

(1)逻辑运算符的种类

python中的逻辑运算符包括:and、or、not三个。

  • and:左侧和右侧的表达式都为真整体才为真(例:你必须有车并且有房才能结婚,有车和有房缺一不可)
  • or:左侧和右侧的表达式有一个为真整体才为真(例:你要么有车要么有房才能结婚,有车和有房有一个就行)
  • not:右侧的表达式为真,整体为假;右侧的表达式为假,整体为真(例:你的对象必须不是外地人才能结婚,就是对方只要不是外地人就能结婚)

在python中是支持连续比较的,就不需要使用C语言的规则了,而且能用连续比较就不用and。

a = 1
b = 2
c = 3
print(a + b > c and a != b)
#a+b不大于c为假,a不等于b为真,有一个为假整体就为假,整体为假
print(a + b > c or a != b)
#a+b不大于c为假,a不等于b为真,有一个为真整体就为真,整体为假
print(not a != b)
#只要不满足a不等于b的条件这个表达式就为真,但此时a不等于b,整体为假


#python的连续比较
print(a < b and b < c)
#可优化为:
print(a < b < c)

(2)and和or的短路求值

与C语言相同,python也具有同样的表达式和与或的处理逻辑。

如果and左侧的表达式已经为假,根据and有一个为假就为假的特点,那么整体表达式一定为假,此时and右侧的表达式不会计算。

如果or左侧的表达式已经为真,根据or有一个为真就为真的特点,那么整体表达式一定为真,此时or右侧的表达式也不会计算。

print(a == b and 10 / 0 == 1)#此时a不等于b,左侧表达式a==b已经为假,整体为假,后面的条件虽然有错误但是不会被判断
#输出:False
print(a != b or 10 / 0 == 1)#此时a不等于b,左侧表达式a!=b已经为真,整体为真,后面的条件虽然有错误但是也不会被判断
#输出:True

4.赋值运算符

python的赋值语句相比C语言更加丰富,包括链式赋值、多元赋值.复合赋值。

(1)链式赋值

#链式赋值
a = b = 10
#相当于下面两行的操作在一行完成了
# a = 10
# b = 10

(2)多元赋值

#多元赋值
a, b = 10, 20
#上面的行代码可替代下面两行代码
# a = 10
# b = 20


#多元赋值方便了变量值的交换
#方法一:
s1 = "醋"
s2 = "酱油"
#此时我想把醋倒到酱油瓶里,酱油倒到醋瓶里
s3 = ""#定义一个空瓶
#把酱油倒到空瓶里
s3 = s2
#把醋倒到酱油瓶里
s2 = s1
#把空瓶中的酱油倒到醋瓶里
s1 = s3
print(s1)
print(s2)

#通过多元赋值一行就可以搞定
a, b = b, a
#把a的值赋给b,把b的值赋给a

(3)复合赋值

注意python中不支持C语言中的++a和a++

#复合赋值
a = 0
a = a + 1
#表示把a+1的值赋给a
print(a)
#结果为1

#上面的代码可以改写为
a = 0
a += 1
#a += 1与a = a + 1效果是相同的
print(a)
#结果也为1

六、选择语句

1.选择语句的写法

python中的选择语句与C语言中的用法是一致的,只是在写法上有所差别。

(1)单个if

满足if后面的条件就执行下面缩进的代码。

格式:

if+条件+冒号

四个空格或Tab键+需要执行的语句

a = 1
if a == 1:
    print("a的值为1")
a = 0
if a == 1:
    print("a的值为1")

(2)if与else

满足if后面的条件就执行下面缩进的代码,否则执行else下缩进的代码

格式:

if+条件+冒号

四个空格或Tab键+需要执行的语句

else+冒号

四个空格或Tab键+需要执行的语句

a = 0
if a == 1:
    print("a的值为1")
else:
    print("a的值不为1")

(3)if、elif与else

满足if后面或者elif的条件就执行下面缩进的代码,否则执行else下缩进的代码

格式:

if+条件+冒号

四个空格或Tab键+需要执行的语句

elif+条件+冒号

四个空格或Tab键+需要执行的语句

......

else+冒号

四个空格或Tab键+需要执行的语句

a = input("输入1表示好好学python,输入0表示不学:")
#注意默认返回的变量类型为str,得用str类型的字符串“1”比较
if a == "1":
    print("小伙子有前途")
elif a == "0":
    print("NND,不学是吧")
else:
    print("非法操作")

2.python的缩进和代码块

代码块指的是一组放在一起执行的代码,C语言使用{}实现代码块,而python中使用缩进表示代码块。

详见以下代码:

a = 1
if a == 1:
    print("aaa")
    print("bbb")
#这个程序满足a==1,会打印aaa和bbb


#然后我们除去bbb的缩进,改a的值为0
a = 0
if a == 1:
    print("aaa")
print("bbb")
#此时不满足a==1,但是bbb也打印出来了
#所以说明python的条件判断语句下面只有缩进的语句才作为当前条件下的会被执行的语句


#条件判断语句的下面一行一定要有缩进
a = 0
if a == 1:
print("aaa")
print("bbb")
#上面的if语句找不到该条件下需要执行的代码,所以会报错


#这种缩进也可以嵌套
a = 1
b = 1
if a == 1:
    if b == 2:
        print("a")
    else:
        print("b")
else:
    print("c")

python的缩进可以嵌套以实现更复杂的控制,相同缩进的语句互相对应,即从上到下画一条线,在一条线上的代码是相互对应的。正是因为这样的语法,所以相比C/C++,python不适合太多的嵌套缩进。

3.空语句pass

pass表示空语句,只负责占位,不会执行任何代码。

#空语句用于补充条件指令下不需要执行代码的位置
a = 1
if a == 1:
    print(a)

# 我想改变逻辑为a!=1时,打印a的值,我还不想改变if语句
a = 1
if a == 1:
    pass# 用一个空语句占位置,a==1时不会执行任何指令
else:
    print(a)

七、循环语句

1.while循环

python的算数运算符与C语言比较类似,但也有一定的区别。

格式:

while+条件+冒号

四个空格或Tab键+需要循环执行的语句

#实例
a == 1
while a<=10:
    print(a)
    a+=1

#写一个死循环
a == 1
while a<=10:
    print(a)

死循环可以通过按左侧的红色方块停止(最左侧Run下面)

2.for循环

python的算数运算符与C语言比较类似,但也有一定的区别。

格式:

for+变量+in+range(数字,数字,数字)

四个空格或Tab键+需要循环执行的语句

其中,括号内的第一个数字表示变量的初始值,中间的数字表示变量不会超过这个数字,最后的数字表示步长,即每次循环变量的变化值。如果我们没有设置步长,那步长默认为1。

for i in range(1, 11):
    print(i)
    
for i in range(1, 11, 2):
    print(i)
    
for i in range(10, 0, -1):
    print(i)
    
#输出:
#竖向打印12345678910
#竖向打印13579
#竖向打印10987654321

3.break与continue语句

python的break与continue语句与C语言是一致的。

在循环中只要遇到continue那么这次循环就直接中断,代码的执行回到头部,相当于continue以下的代码在本次循环中全部不执行了。

#有六个包子,我吃到第三个,发现里面有一只虫子,我就扔下这个包子接着吃剩下的包子
i = 1
while i <= 6:
    if i == 3:
        i += 1
        continue
    print(f"我在吃第{i}个包子")
    i += 1

# 输出:
# 我在吃第1个包子
# 我在吃第2个包子
# 我在吃第4个包子
# 我在吃第5个包子
# 我在吃第6个包子

在循环中遇到break就直接跳出循环了。

#有六个包子,我吃到第三个,发现里面有半只虫子,给我恶心坏了,啥也不想吃了
while i <= 6:
    if i == 3:
        break
    print(f"我在吃第{i}个包子")
    i += 1

# 输出:
# 我在吃第1个包子
# 我在吃第2个包子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947773.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024 年度总结

时光荏苒&#xff0c;2024 年即将画上句号&#xff0c;回顾这一年的写博历程&#xff0c;有付出、有收获、有成长&#xff0c;也有诸多值得回味与反思的瞬间。 一、内容创作 主题涉猎&#xff1a;这一年&#xff0c;我致力于探索多样化的主题&#xff0c;以满足不同读者群体的…

汉王扫描王 2.9.16 |免费无广告的智能扫描软件,支持多种格式导出

汉王扫描王是一款功能全面的智能扫描软件&#xff0c;集成了文字识别、表格提取和文档转换等功能。它支持将文档转换为PDF、Word、Excel等多种格式&#xff0c;非常适合学生、教师、业务人员和财务工作者使用。该软件具备手机扫描仪功能&#xff0c;能够自动抠边、矫正文档&…

“善弈者”也需妙手,Oclean欧可林:差异化不是说说而已

作者 | 曾响铃 文 | 响铃说 俗话说&#xff0c;“牙痛不是病&#xff0c;痛起来要人命”。这话意思大家都知道&#xff0c;牙痛虽不是什么大病&#xff0c;可一旦发作却是极难忍受。 前几日&#xff0c;Oclean欧可林举办了一场AirPump A10氧气啵啵冲牙器新品品鉴会&#xff…

VBA 64位API声明语句第005讲

跟我学VBA&#xff0c;我这里专注VBA, 授人以渔。我98年开始&#xff0c;从源码接触VBA已经20余年了&#xff0c;随着年龄的增长&#xff0c;越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友&#xff0c;都来学习VBA,利用VBA,起码可以提高…

golang 编程规范 - 项目目录结构

原文&#xff1a;https://makeoptim.com/golang/standards/project-layout 目录结构 Go 目录 cmdinternalpkgvendor 服务端应用程序目录 api Web 应用程序目录 web 通用应用程序目录 buildconfigsdeploymentsinitscriptstest 其他目录 assetsdocsexamplesgithooksthird_par…

OFDM学习-(二)长短序列和PPDU整体数据处理流程

OFDM学习 &#xff08;二&#xff09;长短序列和PPDU整体数据处理流程 OFDM学习前言一、短序列短序列的作用 二、长序列三、PLCP/SIGNAL/DATA数据处理流程三、fpga实现STS模块LTS模块训练序列模块仿真波形 总结 前言 根据框图可以知道发射机这部分信号在DA转换之前&#xff0c…

解决 `pnpm install` 出现 `ERR_PNPM_ENOENT` 错误的方法

解决 pnpm install 出现 ERR_PNPM_ENOENT 错误的方法 在使用 pnpm 进行项目开发时&#xff0c;我们可能会遇到 ERR_PNPM_ENOENT 这样的错误&#xff0c;本文将详细介绍该错误的解决方法。 错误描述 当我们运行 pnpm install 命令时&#xff0c;可能会遇到如下错误信息&#…

Flutter中的网络请求图片存储为缓存,与定制删除本地缓存

Flutter中的网络请求图片存储为缓存&#xff0c;与定制删除本地缓存 1&#xff1a;封装请求图片函数 2&#xff1a;访问的图片都会转为本地缓存&#xff0c;当相同的请求url&#xff0c;会在本地调用图片 3&#xff1a;本地缓存管理【windows与andriod已经测试】【有页面】【有…

数据库新建用户后(Host:%),报错:localhost无法连接

存在问题 在给数据库&#xff08;MySQL、MariaDB等&#xff09;创建了新的用户名&#xff08;eg&#xff1a;maxscale&#xff09;后&#xff0c;无法使用新用户名登录&#xff0c;并报如下错误&#xff1a;ERROR 1045 (28000): Access denied for user maxscalelocalhost (us…

1-markdown转网页样式页面 --[制作网页模板] 【测试代码下载】

markdown转网页 将Markdown转换为带有样式的网页页面通常涉及以下几个步骤&#xff1a;首先&#xff0c;需要使用Markdown解析器将Markdown文本转换为HTML&#xff1b;其次&#xff0c;应用CSS样式来美化HTML内容。此外&#xff0c;还可以加入JavaScript以增加交互性。下面我将…

通过 4 种方式快速将音乐从 iPod 传输到 Android

概括 在 iPod 上听音乐很酷&#xff0c;但是当您拥有最新的 Android 手机时&#xff0c;也许您想在新手机上欣赏 iPod 音乐。那么&#xff0c;你的计划是什么&#xff1f;如何将音乐从 iPod 传输到 Android&#xff1f; 如果您担心这个问题&#xff0c;请看看下面的方法。他们…

grouped.get_group((‘B‘, ‘A‘))选择分组

1. df.groupby([team, df.name.str[0]]) df.groupby([team, df.name.str[0]]) 这一部分代码表示对 DataFrame df 按照 两个条件 进行分组&#xff1a; 按照 team 列&#xff08;即团队&#xff09;。按照 name 列的 首字母&#xff08;df.name.str[0]&#xff09;。 df.name.s…

力扣28找出字符串中第一个匹配项的下标

class Solution:def strStr(self, haystack: str, needle: str) -> int:# 特殊情况处理if not needle:return 0# 获取 haystack 和 needle 的长度a len(needle)b len(haystack)# 遍历 haystack&#xff0c;检查每个子字符串是否与 needle 匹配for i in range(b - a 1):if…

icp备案网站个人备案与企业备案的区别

个人备案和企业备案是在进行ICP备案时需要考虑的两种不同情况。个人备案是指个人拥有的网站进行备案&#xff0c;而企业备案则是指企业或组织名下的网站进行备案。这两者在备案过程中有一些明显的区别。 首先&#xff0c;个人备案相对来说流程较为简单。个人备案只需要提供个人…

ElasticSearch备考 -- 整体脉络梳理

1、 search 、Update、reindex ElasticSearch 备考 -- 查询&高亮&排序 ElasticSearch 备考 -- 聚合查询 ElasticSearch 备考 -- 异步检索 2、search temple ElasticSearch备考 -- Search template 3、custom analyzer ElasticSearch 备考 -- 自定义分词 2、…

用css实现瀑布流布局

上效果 知识理解 column-count: 4; column-gap: 15px;实现固定四行瀑布流布局 columns: 200px auto;column-gap: 15px;由浏览器根据容器的宽度自动调整&#xff0c;尽可能一行多个200px宽度的列数 <!DOCTYPE html> <html lang"en"><head><me…

Springboot日志打印、SpringBoot集成Log4j2、异步日志

文章目录 一、Log4j2介绍1.1、常用日志框架1.2、为什么选用log4j2 二、Log4j2整合步骤2.1、引入jar包2.2、配置文件2.3、配置文件模版 三、异步日志3.1、引入disruptor3.2、修改启动类3.3、修改日志文件的内容3.4、再次进行测试 四、可能遇到的问题4.1、日志打印不生效&#xf…

浏览器选中文字样式

效果 学习 Chrome: 支持 ::selection。Firefox: 支持 :-moz-selection 和 ::selection。Safari: 支持 ::selection。Internet Explorer: 支持 :-ms-selection。Microsoft Edge: 支持 ::-ms-selection 和 ::selection。 代码 <!DOCTYPE html> <html lang"en&qu…

【UE5】UnrealEngine源码构建2:windows构建unreal engine 5.3.2

参考大神知乎的文章:UE5 小白也能看懂的源码编译指南 据说会耗费400G的空间。 代码本身并不大,可能是依赖特别多,毕竟看起来UE啥都能干,核心还是c++的, 【UE5】UnrealEngine源码构建1:tag为5.3.2源码clone 本着好奇+ 学习的态度,想着也许有机会能更为深入的熟悉UE的机制…

STM32 拓展 RTC(实时时钟)

RTC简介 RTC(Real Time Clock,实时时钟)。是一个掉电后仍然可以继续运行的独立定时器。 RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 RTC实质…