1 运算符
1.1 比较运算符
比较运算符包括:>(大于),<(小于),==(等于),!=(不等于),>=(大于等于),<=(小于等于);所有比较运算符的运算结果都是布尔值(True或者False),如:
print(100 > 10) #True
print(100 == 10) #False
print(100 != 10) #True
print(100 >= 100) #True
Python支持直接进行数学中表示范围的写法,而其他语言一般不支持,如:
= 1000
print(1 <= a <= 100) #False
1.2 逻辑运算符
逻辑运算符包括:and(逻辑与运算),or(逻辑或运算),not(逻辑非运算),这三个都是python中的关键字,且逻辑运算符的运算对象和运算结果都必须是布尔值。
-
逻辑与运算
当要求多个条件同时满足的时候,可将多个条件用and连接。当所有条件都是True时,与运算结果为True;当条件中中存在False时,与运算结果为False。如:
Ture and Ture --> True
Ture and False --> False
False and Ture --> False
False and False --> False
总结起来可概括为:全真为真,有假为假。
练习1:获取奖学金的条件是:操评分不小于95分且绩点不小于4.0。
score = 98
grade = 3.5
print('是否能拿奖学金:',score >= 95 and grade >= 4.0)
练习2:判断某个对应年龄的人是否属于儿童(年龄大于等于3小于等于12)。
age = 18
print('是否是儿童',age >= 3 and age <=12)
print('是否是儿童',3 <= age <= 12)
-
逻辑或运算
当要求多个条件中只要有一个条件满足的时候,就将多个条件用or连接。当所有条件都为False时,或运算的结果为False;当条件中存在True时,或运算的结果为True。如:
True or True --> True
True or False --> True
False or True --> True
False ro False --> False
总结起来可概括为:有真为真,全假为假。
练习1:获取奖学金的条件是:操评分大于95分或绩点大于4.5。
score = 98
grade = 3.5
print('是否能拿奖学金:',score > 95 or grade > 4.5)
练习2:获取奖学金的条件是:1.操评分大于95分但绩点不低于2.0;2.绩点大于4.5但操评分不低于80。
score = 98
grade = 3.5
print('是否能拿奖学金:',(score > 95 and grade >= 2.0 ) or (score >= 80 and grade > 4.5))
短路操作
python中and和or运算支持短路操作,如:
条件1 and 条件2 --> 如果条件1的结果是False,那么系统不会去判断条件2的结果,整个语句都会变成False。
条件1 or 条件2 --> 如果条件1的结果是True,那么系统不会去判断条件2的结果,整个语句都变成True。逻辑非运算
逻辑非运算符是单目运算符,运算对象只有一个,其本质是对布尔值进行取反,在对某个条件进行否定时使用。
1.3 赋值运算符
赋值运算符包括:=,+=,-+,=,/+,//=,%=, * =;所有赋值运算符的左边必须是变量,复合赋值运算符的左边要求除了是变量以外,这个变量还必须是已经声明过的变量。赋值符号的右边可以是数据、已经声明过的变量、运算表达式。如:
name = '张三'
sum1 = 10 + 23
age1 = age
复合赋值符号的使用:变量 += 数据 --> 将变量中保存的值加上特定的数据,将结果重新保存到变量中。如:
num2 = 10
num2 += 2 # num2 = num2 + 2 = 10 + 2
print(num2)
1.4 运算符的优先级
在Python的运算符中,优先级顺序为:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
而在逻辑运算符中,优先级顺序为:not > and > or,先算优先级高的,有括号先算括号。
2 if语句
python中分支结构只有if一种,在编写程序时某些代码不是一定会执行,而是在满足某些条件的时候才会执行,此时可以使用if语句。
2.1 if结构
-
基本语法
if 条件语句:
代码块 -
结构说明
if ——关键字,固定写法
条件语句 —— 结果是布尔的表达式;本质可以是除了赋 值语句以外的任何语句都可以;
: —— 固定写法,(一般有冒号的地方,后边都 会产生缩进)
代码块 —— 和if保持一个缩进的一条或多条语句,满足 某些条件才会执行 -
执行过程
先判断条件语句是否为True(如果条件不是布尔值,先转换成布尔值再判断);如果为True就执行代码块中的语句,否则不执行,直接执行后面的语句。如:
if True:
print('语句1')
print('语句2')
print('语句3')
2.2 if-else结构
满足某个条件执行一个操作,不满足这个条件执行另外的操作。
-
基本语法
if 条件语句:
代码块1
else:
代码块2
其他代码 -
结构说明
if ——关键字,固定写法
条件语句 ——可以是数据、声明过的变量、不包含赋值符号的运算表达式
:——固定写法
代码块1——和if保持一个缩进的一条或者多条语句
else——关键字,固定写法
代码块2 ——和else保持一个缩进的一条或多条语句 -
执行过程
先判断条件语句是否为True(如果不是布尔值,转换成布尔再判断)如果结果为True,执行代码块1,否则执行代码块2。如:
num1 = 11
if num % 2 == 0:
print('偶数')
else:
print('奇数')
2.3 if-elif-else结构
-
基本语法
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
……
else:
代码块 -
执行过程
先判断条件语句1是否为True,如果为True,就执行代码块1,整个if-elif-else语句结束,直接执行其他语句。如果为False,则判断条件语句2是否为True,以此类推;如果前面所有的条件语句都不为True,则执行else的语句。如:
练习:0-3 幼儿,4-12 儿童,13-17 少年,18-28青年,29-49壮年,50-59中年,70以上老年。根据年龄判断所属人群。
age = 0
if age <= 0:
print('年龄输入错误')
elif 0 < age <= 3:
print('幼儿')
elif age <= 12:
print('儿童')
elif age <= 17:
print('少年')
elif age <= 28:
print('青年')
elif age <= 49:
print('壮年')
elif age <=69:
print('中年')
else:
print('老年'))
2.4 if嵌套
可以在任何if结构中,根据去求再写其他的if结构。通过合理的嵌套,可以提高代码的执行效率,减少运算时间和内存消耗。
练习:如果一个数是偶数就打印偶数,否则打印奇数。如果这个数能被4整除,则打印,能被4整除。如果个位数是3,打印最后一位数是3
num2 = 5
if num2 % 2 == 0:
print('偶数')
if num2 % 4 == 0:
print('能被4整除')
print('==========')
else:
print('奇数')
if num2 % 10 == 3:
print('最后一位数是3'))
3 数字
python中和数字相关的类型:int、float、bool、complex(复数)。
3.1 整数
int(整型)包含所有的整数,python中可以通过十进制、二进制、八进制和十六进制的形式对整数进行表示。
十进制
基数:0、1、2、3、4、5、6、7、8、9。
进位:逢10进1
位权:123 = 110^2 + 210^1 + 3*10^0
*表示方法:直接写,不加前缀,110,2323,12412二进制
基数:0、1
进位:逢2进1
位权:101 = 12^2 + 02^1 + 1*2^0 = 5
*表示方法:在二进制数前加前缀0b/0B,0b110.0b1010八进制
基数:0、1、2、3、4、5、6、7
进位:逢8进1
位权:56 = 58^1 + 68^0 = 46
表示方法:在八进制数前加0o,0o12,0o54十六进制
基数:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
进位:逢16进1
位权:1AF = 116^2 + 1116^1 + 15*16^0
*表示方法:在十六进制数前加0x,0x129,0xa3进制的转换
转换为二进制:bin(整数)
转换为八进制:oct(整数)
转换为十六进制:hex(整数)
示例:
print(bin(1314))
print(oct(1314))
print(hex(0b101))
3.2 浮点数
float浮点数包含所有的小数,同时pyton总支持科学技术法,如:
1200 == 1.2e3 0.001 == 1e-3
3.3 布尔
bool(布尔):只有True和False两个值; True本质就是数字1,False本质就是数字0
3.4 复数
包含所有的带虚部的数,格式为实部+虚部(数字后面加j)。如:
num1 = 10 + 2j
print(num1,type(num1))
num2 = 2 - 3j
print(num1 * num2)
3.5 type函数
用法为:type(数据) --> 获取数据对应的类型
3.5 类型转换
用法为:类型名(数据) ——> 将数据转换成指定的类型。
注意:类型名不能作为变量名。
int(数据):将数据转换成整型,字符串去掉引号后为整数时才能转换为整型。
float(数据):将数据转换成浮点型,字符串去掉引号后为数字的都能转换为浮点型。
bool(数据):所有数据都能转换成布尔,数字转换成布尔时,0为False,其余为True;字符串为空时,为False,其余为True。
示例:
num3 = 12.5
new_num3 = int(num3)
print(new_num3)
num4 = float(100)
print(type(num4),num4)
print(int(-10.2))
print(bool('False'))
print(bool(''))