一、标识符
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,folat,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
1
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
1
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。
代码演示:
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层