目录
1.动态类型
2.类型声明
3.注释的使用
4.输入输出
4.1基于控制台输出
4.2在控制台输入函数
5.算术运算符(+ - * / % ** //)
6.关系运算符
7. 逻辑运算符(and or not)
8.赋值运算符
9.总结
10.相关练习题
1.动态类型
在Python中,一个变量是什么类型,是可以在“程序运行”过程中发生变化的,这个特性称为“动态特性”。
a=10
print(type(a))
a='hello'
print(type(a))
a=True
print(a)
动态类型,写法比较灵活,提高了语言的表达能力。
静态类型:
程序运行过程中,变量的类型始终不变
C++Java
Java中的int a=10;
a这个变量在始终程序运行过程中,始终都是int,如果尝试a='hello',编译阶段就会报错。
2.类型声明
python也可以进行类型声明的。
a:int=10
print(type(a))
a:str='hello'
print(type(a))
a=True
print(a)
并不影响之后它的类型的改变。
3.注释的使用
Python中有两种注释
(1)注释行
# 开头的注释,一般写在要注释的代码的上方,也有少数情况下是要写在要注释代码的右侧。很少写在代码的下方。
(2)文档字符串
"""
这是一段文档字符串,起到的作用和注释一样,也是说明解释的效果。
"""
如何写出比较好的注释:
1.注释的内容是准确的!起到误导作用的注释,还不如不写!
但凡要修改代码,务必要记得更新注释。
2.篇幅合理,既不要太精简,也不要长篇大论。
3.使用中文
4.内容积极向上,不要有负能量
4.输入输出
控制台:对于机械的操作面板,就叫控制台,控制台上会有一些按钮,开关,操作杆。
计算机里,就把用户能输入命令,像计算机安排工作,计算机再把结果显示出来,这样的程序,就成为控制台了。
控制台是一种任何计算机交互的最基础的方式。
但是日常生活中最不常用,更常见的交互方式,图形化界面。
4.1基于控制台输出
print('hello')
字符串和数字如何混合打印:
a=10
print(f"a={a+10}")
这个语法叫做“格式化字符串”,f-string,此处的f表示“format”
此时就可以使用{}这样的语法,往字符串里嵌入变量和表达式。
4.2在控制台输入函数
#通过控制台输入一个整数
num=input("请输入一个整数:")
print(f'您输入的数字是{num}')
input执行的时候,就会等待用户输入!如果用户始终不输入,就会在这里死等。
注:input返回的实际上是字符串
string->int 的转换:int()
a=input("请输入一个整数:")
b=input("请输入一个整数:")
a=int(a)
b=int(b)
print(f'a+b={a+b}')
int->string的转换:str()
string->float的转换:float()
a=input("请输入一个数字:")
b=input("请输入二个数字:")
c=input("请输入三个数字:")
d=input("请输入四个数字:")
a=float(a)
b=float(b)
c=float(c)
d=float(d)
avg=(a+b+c+d)/4
print(f"平均值是{avg}")
? 如何批量注释代码:
1.选中要注释的代码
2.使用ctrl+/
5.算术运算符(+ - * / % ** //)
在python中0不能作为除数
print(10/0) //会报错,除零异常
print(10/0.0)
在python中整数除以整数,结果可能是小数
print(1/2)
但是大部分的编程语言,都是整数除以整数,结果还是整数。
%用来求余数(得到的余数一定是小于除数的)
** 进行乘方运算
既能够支持整数次方,也能支持小数次方(开方运算)
print(4**2)
print(4**0.5)
// 地板除法,会针对计算的结果进行向下取整
print(7//2)? 结果 3
print(-7//2)? 结果 -4
6.关系运算符
就是在比较两个操作数之间的“大小”“相等”这样的关系
< > <= >= == !=
1.关系运算符对应的表达式,值是布尔类型
表达式符合要求为真,不符合要求为假
2.关系运算符不光可以针对数字进行比较,还能够比较字符串。
针对中文进行字符串比较,是没有意义的,至少按照默认的字典序来说是没意义的。
在c/java中不能直接使用==或者!=比较(这是一个小众的行为)
C、strcmp,如果直接使用==本质上在比较两个字符串首地址。
Java equals方法,如果直接使用==本质上在比较这两个字符串是否是同一个对象。
想python直接使用==或!=来比较字符串内容,是大部分编程语言遵守的规则。
?针对浮点数来说,使用==比较相等,存在一定的风险。
因为浮点数在内存中的存储和表示,是可能存在误差的,这样的误差在进行算数运算的时候就可能被放大,从而导致==的判定出现误判
例子:
print(0.1+0.2==0.3)
print(0.1)
print(0.2)
print(0.1+0.2)
print(0.3)
?
正确的浮点数的比较方式:在C/Java中不支持,Python中支持这种连续小于的写法
a=0.1+0.2
b=0.3
#这个代码是看a-b差是否是一个非常小的数字,是否在误差范围之内
print(-0.000001<(a-b)<0.000001)
7. 逻辑运算符(and or not)
and 并且? 一假即假
or 或者?? 一真即真
not逻辑取反
在python中a<b<c等价于 a<b and b<c
在C++或者Java里,使用&& 表示逻辑与? 并且
|| 表示逻辑或? 或者
!表示逻辑非 逻辑取反
逻辑运算符重要性质:短路求值
对于and操作来说,如果左侧表达式为False,那么整体的值一定是False,右侧表达式不必求值。
对于右侧表达式来说,如果左侧表达式为True,那么整体的值一定是True,右侧表达式不必求值。
例子:
print(a>b and 10/0==1)
print(a<b or 10/0==1)
如果右侧没有抛出异常,就说明右侧没有执行
?
8.赋值运算符
=
表示赋值,意思是把右侧的值填充到左侧的空间中,左侧的区间需要是一个变量
10=20? 报错
==
表示比较相等
链式赋值:(一般不建议使用链式赋值,尽量一行代码就只包含一个操作。)
a=b=c
先把20赋值给b,再把b赋值给a,就相当于a=20,b=20
多元赋值:
a,b=10,20? 把10赋给了a,把20赋给了b
可以是交换三连变的简单
a=10
b=20
tmp=a
a=b
b=tmp
print(a,b)
#使用多元赋值,直接一步到位完成交换
a,b=b,a
print(a,b)
复合运算 -=,*=,/=,%=,//=
a=0
#a=a+1
a+=1
print(a)
注意:python中不支持自增,自减操作。a++,++a
9.总结
常量、变量、类型(整数、浮点数、字符串、布尔值)
注释
输入输出
运算符(算数运算符、关系运算符、逻辑运算符、赋值运算符)
10.相关练习题
?选择B
选项D 如果把布尔类型的值和整数进行算术运算,此时就会True为1,False为0
选择D
Python中只有字符串类型,没有字符类型,'a'这算是长度为1的字符串。
Python中只有int、float
选择B
A的正确写法? a:int=10
B在python写完之后,可以加上分号,也可以不加,通常情况下不加,并不推荐。
CTrue是大写的
|