目录
一、标识符
1.1 命名规则
- 只能由数字、字母、下划线组成,不能有其他符号;
- 不能以数字开头;
- 严格区分大小写;
- 不能使用关键字。
关键字:
‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’
1.2 命名规范
- 尽量不使用大小写区分不同变量;
- 尽量见名知意;
- 多个单词可用下划线分开;
- 遵循驼峰命名法。
例如:stuScore(小驼峰) StuScore(大驼峰)
1.3 其他标识符命名规则
- 常量:常量名所有字母大写,由下划线连接各个单词。
如:MAX_OVERFLOW,TOTAL
- 函数&方法: 函数名应该为小写,多个单词可以用下划线连接单词以增加可读性。
如:my_function,my_example_function
- 文件名: 全小写,可使用下划线。
- 包: 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入.
- 模块: 与包相同。
- 类: 总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。
二、Python数据类型
2.1 数据类型分类
类别 | 说明 |
---|---|
Number | 数字类型,包含:int,float,complex |
str | 字符串 |
bool | 布尔值,只有两个值:True、False |
None | 空值类型,只有一个None值 |
list | 列表,用来存相同类型的数值 |
tuple | 元组,不可改变的列表,用来存相同类型的数值 |
dict | 字典,存不同类型的数值 |
set | 集合,不打印相同的值 |
bytes | 字节 |
2.2 数字类型转换
int(x):将x值转换为整型;
str(x):将x值转换为字符串;
float(x):将x值转换为浮点数。
三、运算符
3.1 算术运算符
算术运算符有:+ - *【乘法】 /【除法】 %【求余,取模】 **【求幂,次方】 //【取整】
乘法运算符*:若是字符串 * 数字,则结果为该字符串重复打印n次。
//取整运算符:取整运算时,向下取接近商的整数。
print("y" * 3) => yyy
print(3 // 2) => 1,print(-3 // 2) => -2
3.2 关系运算符
- 作用:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False】
- 使用场景:if语句,循环
1.只有相同类型数据比较;
2.字符串比较,实际是对应ASCII码值的比较。
- 常用ASCII码:
字符 | 十进制 | 字符 | 十进制 | 字符 | 十进制 |
---|---|---|---|---|---|
A | 65 | a | 97 | 0 | 48 |
B | 66 | b | 98 | 1 | 49 |
C | 65 | c | 99 | 2 | 50 |
D | 65 | d | 100 | 3 | 51 |
E | 65 | e | 101 | 4 | 52 |
… | … | … | … | 5 | 53 |
W | 87 | w | 119 | 6 | 54 |
X | 88 | x | 120 | 7 | 55 |
Y | 89 | y | 121 | 8 | 56 |
Z | 90 | z | 122 | 9 | 57 |
代码演示:
print(A > a) => False
print(3 < 4) => True
print("abc" > "adc") => False # 对应位进行比较,从左向右遇到第一对不相同值时比较大小即可!
3.3 逻辑运算符
- and:有False时都为False。
print(True and True) => True
print(True and False) => False
print(False and False) => False
- or:有一个结果为真时,输出结果为真。
- not:取反,一定会得到一个布尔值。
print(not True) => False
3.3.1 各数据类型布尔值
- bool类型:False是0,True是1;
- 字符串:空字符串输出为假,其他为真(空格也是一个字符);
- None:输出是假;
- list类型:[]空列表为假,其他为真;
- dict类型:{}空字典为假,其他为真;
3.3.2 短路操作
- and在运算中以bool类型进行,但是输出结果不一定是bool值,如:
x = 10 and 3 and 4 => 4
x = 0 and 3 and 4 => 0
x = 3 and 0 and 4 => 0
- 过程:从左向右判断,直至遇到False值返回输出0,;若最后都没0,则返回输出最后一位值。
- or:在运算中以bool类型进行,但是输出结果不一定是bool值,如:
x = 0 or 3 or 4 => 3
x = 3 or 0 or 4 => 3
- 过程:与and原理相反。遇到第一个真值返回输出该值。
3.4 成员运算符、身份运算符
3.4.1 成员运算符
成员运算符:in,not in。输出结果为布尔值。
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
- 代码演示:
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")
# 结果为:1 - 变量 a 不在给定的列表中 list 中
if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")
#结果为:2 - 变量 b 不在给定的列表中 list 中
3.4.2 身份运算符
身份运算符:is,is not。判断内存地址是否相同,输出结果为布尔值。
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
- 代码演示:
a = 20
b = 20
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
# 结果为:1 - a 和 b 有相同的标识
if ( a is not b ):
print ("4 - a 和 b 没有相同的标识")
else:
print ("4 - a 和 b 有相同的标识")
# # 结果为:4 - a 和 b 有相同的标识
实际运算过程是id(a) is id(b)是否相同。
id():函数用于获取对象内存地址。
3.5 赋值运算符、位运算符
3.5.1 赋值运算符
简单赋值运算符:= 给一个变量进行赋值。
复合赋值运算符:+= -= %= /= … 给一个变量进行赋值,同时给变量进行相应的运算。
- 代码演示:
num1 = 10
#注意:在赋值运算符中,先计算等号右边的表达式,然后将计算的结果赋值给等号左边的变量
num2 = num1 + 10
print(num2) => 20
#复合 +=,其他原理同+=。
num3 = 10
num3 += 100 #等价于num3 = num3 + 100
print(num3) => 110
3.5.2 位运算符(了解)
先将十进制转换为二进制,以多位为准少位补齐0。
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
或 | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 |
- 代码演示:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print ("1 - c 的值为:", c)
c = a | b; # 61 = 0011 1101
print ("2 - c 的值为:", c)
c = a ^ b; # 49 = 0011 0001
print ("3 - c 的值为:", c)
c = ~a; # -61 = 1100 0011
print ("4 - c 的值为:", c)
c = a << 2; # 240 = 1111 0000
print ("5 - c 的值为:", c)
c = a >> 2; # 15 = 0000 1111
print ("6 - c 的值为:", c)
3.6 运算符优先级
四、IF分支
if后的判断语句输出结果为bool值,若为真则进入if语句!
4.1 if语句【单分支】
- 语法:
if 表达式:
执行语句 - 说明;要么执行,要么不执行,当表达式成立的之后,则执行语句;如果表达式不成立,则直接跳过整个if语句继续执行后面的代码
- 注意:表达式为真才执行语句
假:0 0.0 False “” None【空值】 - 一般情况下,表达式使用都是比较运算符
- 代码演示:
#练习:从控制台输入一个数,判断这个数是否是偶数
num = int(input())
if num % 2 == 0:
print(num,"是一个偶数")
print(num,"不是一个偶数")
4.2 if…else语句【双分支】
- 语法:
if 表达式:
执行语句1
else:
执行语句2 - 说明:如果表达式成立,则执行语句1;如果不成立,则执行语句2
- 代码演示:
# 从控制台输入一个数,判断这个数是否是偶数
num = int(input())
if num % 2 == 0:
print(num,"是一个偶数")
else:
print(num,"不是一个偶数")
4.3 if…elif…else语句【多分支】
-
语法:
if 表达式1:
执行语句1
elif 表达式2:
执行语句2
elif 表达式3:
执行语句3
……
else:
执行语句n -
说明:实现了多选一的操作,会根据不同的条件从上往下来进行匹配,如果匹配上了,则执行对应的语句,然后直接结束整个if-elif语句,但是,如果所有的条件都不成立的话,则执行else后面的语句
注意:不管if-elif-else有多少个分支,都只会执行其中的一个分支
- 代码演示:
#需求:从控制台输入一个数字,根据数字打印年龄段
age = int(input())
if age < 0:
print("输入有误")
elif age <= 3:
print("婴儿")
elif age <= 6:
print("儿童")
elif age <= 12:
print("青少年")
elif age <= 18:
print("青年")
else:
print("hello")
4.4 if嵌套语句
- 语法:
if 表达式1:
执行语句1
if 表达式2:
执行语句2 - 说明:if语句的嵌套,可以在单分支,双分支,多分支之间进行任意组合
- 代码演示:
score = int(input("请输入学生的成绩:"))
if score < 0 or score > 100:
print("输入有误")
else:
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("还行")
else:
print("")
注意:从语法角度来说,嵌套的层数没有任何的限制,但是,为了代码的可读性和可维护性,嵌套层数不要超过3层