1)同时定义多个变量赋相同的值:变量名1=变量名2=变量名3=…=数据
```python x = y = z = 0 print(x, y, z) ```
2)同时定义多个变量赋不同的值:
变量名1,变量名2,变量名3,… = 数据1,数据2,数据3,…
name, age, gender = '小明', 18, '男' print(name, age, gender) x, y, z = 4, 6, 8 print(x, y, z)
重新给变脸赋值以后,使用变量时是变量中最新的值
score = 100 print(score) score = 95 print(score) score = '万璐' print(score) ### 3.Python定义变量和重新给变量赋值的原理
Python在定义变量的时候会申请内存保存数据,内存申请多大看被保存的数据需 要多大。
重新给变量赋值的时候,会申请新的内存,新的内存的大小由新的数据大小决定,然后变量会和新的内存联系,原来的内存会自动销毁
内存单位:bit(位) 1byte(字节)=8位 1kb=1024字节 1MB=1024kb 1G=1024MB
1TB=1024G
id(变量) - 获取变量对应的内存地址
num = 100 print(id(num)) num = 2000 print(id(num))
注意:除法运算的运算结果是浮点型
print(10+20) print(2-5) print(2*5) print(5/2) print(4/2)
x % y - 求x除以y的余数
被除数÷除数 = 商…余数
被除数 = 除数 x 商 + 余数
print(10 % 3) print(15 % 3)
print(10 % 2) print(25 % 5)
一个整数对10取余,能够获这个数的个位数
一个整数对100取余,能够获取这个数的后两位数
一个数对1000取余,能够获取这个数的后三位数
。。。。
num = 2346 print(num % 10) print(num % 100) print(num % 1000)
print(5 // 2) print(1.8 // 2) print(-5 // 2)
num = 2342 print(num // 10) print(num // 100)
num = 5678 print(num % 100 // 10) print(num // 10 % 10) print(num % 1000 // 100) print(num // 100 % 10) num = 28293 print(num % 1000 // 100) print(num // 100 % 10) num = 38695 print(num // 100 % 10) print(num % 1000 // 100) num = 51698 print(num // 1000 % 10) print(num % 10000 // 1000)
x ** y - 求x的y次方
print(8 ** 3) print(1.3 ** 4) print(9 ** 0.5) print(2 ** 3) print(8 ** (1/3))
所有的比较运算符的运算结果都是布尔值
print(10 > 20) print(10 < 20) print(10 == 20) # print(10 = 10) # 错误 print(10 != 20) print(10 >= 10)
Python的比较运算符支持连写表示范围
x = 0.5 print(0 <= x <= 1)
1)应用场景:用于需要多个条件同时满足的时候,相当于生活中的并且
2)运算规则:条件1 and 条件2 - 两个都是True结果才是True,只要有一个是False结果
就是False
True and True -> True
False and True -> False
True and False -> False
False and False -> False
练习:写出判断一个是否能同时被3和7整除的条件
num = 22 print(num % 3 == 0 and num % 7 == 0) print(num % 21 == 0)
练习:判断指定数是否是能被3整除的偶数
num = 9 print(num % 3 == 0 and num % 2 == 0) print(num % 6 == 0)
1)应用场景:用于需要多个条件只要有一个条件满足就行的时候,相当于生活中的
或者
2)运算规则:条件1 or 条件2 - 两个条件中只要有一个条件是True,结果就是True,两
个都是False的时候结果才False
条件1 or 条件2 or 条件3 …
练习1:判断指定数是否能被5或者7整除
nume = 35 print(num % 5 == 0 or num % 7 == 0)
练习2:判断指定的年是否是闰年
普通闰年 - 能被4整除但是不能被100整除的年:(yesr % 4 == 0 and year %400 != 0)
世纪闰年 - 能被400整除的年:(year % 400 == 0)
year = 2009 print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
1)应用场景:(对某一个条件进行否定)如果正向写条件情况很多很复杂,反向却很
简单的时候,条件就反向写再加not
2)规则: not 条件
not True - >False
not False - > True
num = 21 print(not num > 10) print(num <= 10)
练习:写出判断一个数不能同时被3和7整除的条件
条件反写:
1.能被3整除但是不能被7整除:num % 3 == 0 and num % 7 !=0
2.能被7整除但是不能被3整除:num % 7 == 0 and num % 3 !=0
3.既不能被3整除也不能被7整除:num % 3 != 0 and num % 7 != 0
print((num % 3 == 0 and num % 7 !=0) or (num % 7 == 0 and num % 3 !=0) or (num % 3 !=0 and num % 7 != 0)) print(not num % 21 == 0)
1.短路操作:
条件1 and 条件2
and的短路:如果条件1是False,那么条件2对应的代码不会执行
条件1 or 条件2
or的短路:如果条件1是True,那么条件2对应的代码不会执行
print(True and 100) #100 print(False and 100) #False print(True or 100) #True print(False or 100) #100 print(7 and 8) print(7 or 8) print(not 7) #False print(not 8) #False print(not 0) #True
(记住!!!)重要结论;Python中任何类型的数据都可以转换成布尔(都要布尔值),其
中零值和空值是False,其他的都是True
print(bool(0), bool(0.0), bool(''), bool(None)) print(bool(8), bool(-2), bool(0.34), bool(-2.34), bool('abc'), bool(' ')) name = input('请输入姓名:') if not name: pass
1)赋值运算符的作用不是计算出一个结果,而是将数据保存到变量中
2)所有赋值运算符的左边必须是变量
2.=
变量 = 数据
a = 10 a = 100 a += 10 print(a) a -= 20 print(a) a %= 4 print(a)
3.+=, -=, *=, /=, %=, //=, **=
变量 += 数据 - 将变量中保存的数据和+=后面的数据进行加法运算,将运算结果重新
赋值给前面的变量
注意:复合的赋值运算符前面的变量必须是已经赋值过的变量
强调:所有的赋值运算是没有结果的
print(10 + 20) # print(a += 10) # 报错
1.运算符优先级:数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)
2.数学运算符中:** > *, /, //, %,> +, -
3.有括号先算括号里面的 - ()
result = 100 + 2 * 3 ** 2 > 20 * 10 - 3 print(result)
如果布尔数据参与数学运算,那么False就是0,True就是1
result = 100 + (10 > 20) print(result) result = 100 + True print(result) a = 100 b = False #
1.流程控制 - 程序执行方式
顺序结构(默认) - 代码从上往下一条一条的执行,每条语句执行一遍
分支结构
循环结构
2.if分支结构
1)if单分支结构 - 满足条件执行某个操作,条件不满足的时候就不执行
''' 语法: if 条件语句: 代码段 说明: if - 关键字:固定写法 条件语句 - 任何有结果的表达式,包括:具体的数据,已经赋值过的变量,运算表达式(除了赋值语句) :- 固定写法 代码段 - 从结构上是和if保持一个缩进(一般是一个制表符/tab)的一条或者 多条语句(至少一条) 从逻辑上就是在满足条件才会执行的代码 执行过程:先判断条件语句是否成立,如果成立就执行代码,条件不成立代码 段就不执行。 注:如果条件语句的结果不是布尔,就将数据转换成布尔看结果是 True还是False(所有的零值和空值都是False,其他的都是True)。 ''' age = 18 if age >= 18: print('成年') print('可以进网吧!')
# 练习:根据指定的分数值,打印 '及格' score = 83 if score >= 60: print('及格') # 补充:布尔转换 print(bool(0), bool(0.0), bool(''), bool(None)) # False False False False print(bool(12), bool(-100), bool('a'), bool('False')) # True True True True
''' 语法: if 条件语句: 代码段1(满足条件执行的代码) else: 代码段2(不满足条件的时候执行的代码) ''' # 练习:根据num的值打印'奇数'或者'偶数' num = 23 if num % 2 == 0: print('偶数') else: print('奇数') # 方法二: if num % 2: print('奇数') else: print('偶数') # 练习:根据year的值打印'闰年'或者'平年' year = 200 if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): print('闰年') else: print('平年')
print(100 - 25 * 3 % 4)
应该输出什么? (B)
A. 1
B. 97
C. 25
D. 0
下列哪种说法是错误的(A)。
A. 除字典类型外,所有标准对象均可以⽤于布尔测试
B. 空字符串的布尔值是False
C. 空列表对象的布尔值是False
D. 值为0的任何数字对象的布尔值是False
下列表达式的值为True的是(B)。
A. 3>2>2
B. 1 and 2 != 1
C. not(11 and 0 != 2)
D. 10 < 20 and 10 < 5
Python不⽀持的数据类型有(A)。
A. char
B. int
C. float
D. list
(多选)n = 6784,以下能够获取到7 的⽅法有(CD)。
A. n / 1000 % 100
B. n % 1000 / 100
C. n // 100 % 10
D. n // 10 % 100 // 10
运⾏以下程序,当从键盘上输⼊12,运⾏结果是(A)。
x = (input()) print(type(x))
A. <class 'str'>
B. <class 'int'>
C. 出错
D. <class 'dict'>
下列表达式的运算结果是( D) 。
a = 100 b = False print(a * b > -1)
A. False
B. 1
C. 0
D. True
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
num = 25 print(num % 2 == 0 and num % 5 ==0)
写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应
的结果。
num = 15 print((num % 2 == 0 or num % 5 == 0) and not(num % 2 == 0 and num % 5 == 0))
假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX
时XX分XX秒’的⽅式表示出来。
例如:100秒表示成 0时1分40秒
num = 15678 a = num // 3600 b = num % 3600 // 60 c = num - a * 3600 - b * 60 print(a, '时', b, '分', c, '秒')
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
weight = float(input('输入体重')) height = float(input('请输入身高')) if 18.5 <= weight / height <= 24.9: print('正常') else: print('不正常')
根据输入的成绩的范围打印及格
或者不及格
score = float(input('输入分数')) if score < 60: print('不及格') else: print('及格')
根据输入的年纪范围打印成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。
age = int(input('输入年龄')) if 0 < age < 18: print('未成年') elif 18 <= age <= 150: print('成年') else: print('这不是人')
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
。
a = int(input('输入一个整数')) b = int(input('输入一个整数')) if (a -b) % 2 != 0: print(a - b) else: print('a-b的结果不是奇数')
根据输入的成绩的范围打印及格
或者不及格
score = float(input('输入分数')) if score < 60: print('不及格') else: print('及格')
根据输入的年纪范围打印成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。
age = int(input('输入年龄')) if 0 < age < 18: print('未成年') elif 18 <= age <= 150: print('成年') else: print('这不是人')
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
。
a = int(input('输入一个整数')) b = int(input('输入一个整数')) if (a -b) % 2 != 0: print(a - b) else: print('a-b的结果不是奇数')