day02 变量和运算符
-
回顾
-
变量
-
概念: 保存数据(的容器)
- 定义(创建)变量: 计算数据长度, 识别数据类型(python), 申请内存空间, 数据保存到内存空间, 内存空间关联变量
"""
语法: 变量名 = 数据
说明:
a.变量名:
要求:是标识符(day01)不是关键字;
规范:见名知意,不使用系统函数名/类名/模块名,所有字母小写,多个字母间下划线隔开(驼峰命名法也可以)
b.=: 赋值符号
c.数据:任意有结果的表达式,例如-具体数据,有结果的运算表达式, 已经赋值过的变量
"""
dog_name = '财财' # PEP8命名规范
dogName = '旺财' # 驼峰命名法
- 使用变量
x, y = 100, 200
print(x, y, x + y)
- 重新给变量赋值
xx = 100
print(xx)
xx = 'abc'
print(xx)
-
同时定义多个变量
-
多个变量赋相同的值:变量名1 = 变量名2 = 变量名3 = … = 数据
x1 = x2 = x3 = 100 print(x1, x2, x3)
-
同时定义多个变量赋不同的值:变量名1, 变量名2, 变量名3, … = 数据1, 数据2, 数据3, …
y1, y2, y3 = 10, 20, 30 print(y1, y2, y3)
-
应用:交换变量的值
m, n = 10, 20 m, n = n, m print(m, n)
-
-
定义变量和给变量重新赋值的底层原理
-
为什么python定义变量不需要写类型?
-
为什么重新赋值的时候可以赋不同类型的值?
-
为什么python可以直接计算99999999?**
-
补充1:获取内存地址的工具:id(变量)
-
补充2:计算机内存单位
-
数学运算符
数学运算符 | 意义 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余, 取模, 模运算 |
// | 整除 |
** | 幂运算 |
- *+, -, , /:和数学中一样
print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)
- % - 取余, 取模(求余数)
print(10 % 3)
num = 21
print(num % 2 == 0)
num = 3259
print(num % 10)
print(num % 100)
print(-10 // 3) # 向小取整 -4
print(-10 % 3) # 与整除搭配 2
- // - 整除(对非整除商向小取整)
print(5 // 2)
print(-5 // 2)
print(5 // -2)
print(-5 // -2)
print(int(-5 / 2)) # 去尾取整
print(5.2 // 2.5) # 2.0
print(-5.2 // 2) # -3.0
print(8 / 2)
print(8 // 2)
num = 324
print(num // 10)
print(num // 100)
num = 367892
print('十位:', num // 10 % 10)
print('百位:', num // 100 % 10)
print('十位:', num % 100 // 10)
print('百位:', num % 1000 // 100)
- * - 幂运算(优先级高)*
print(2 ** 3)
print(2 ** -1) # 0.5
print(4 ** 0.5) # 2.0
print(8 ** (1/3)) # 2.0
print((-4) ** 0.5) # 复数
-
比较运算符
比较运算符: >, <, >=, <=, ==, !=
- 所有比较运算符的运算结果都是布尔值
print(10 > 30)
print(10 >= 10)
print(10 == 20)
print(10 <= 20)
print(10 != 20)
num = 25
print(num % 4 == 0) # False
num = 2.31
print(type(num) == float) # True
age = 23
print('是否成年:', age >= 18)
- python的比较运算符支持连写表示范围
num = 2
print(0 < num <= 1)
-
逻辑运算符
逻辑运算符: and, or, not
- and - 逻辑与运算
"""
1)应用场景: 用于连接要求同时满足的多个条件, 相当于生活中的并且
2)运算规则: 条件1 and 条件2 - 两个条件都是True,结果就是True,只要一个是False结果就是False
True and True -> True
True and False -> False
False and True -> False
False and False -> False
"""
gpa = 3.5
score = 95
print('是否能获取奖学金:', gpa >= 3.5 and score > 90)
print('是否能获取奖学金:', not (gpa < 3.5 or score <= 90))
num = 23
print('num是否能够同时被3和7整除:', num % 21 == 0)
print('num是否能够同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
print('num是否能够同时被3和7整除:', not (num % 3 != 0 or num % 7 != 0))
- or - 逻辑或运算
"""
1)应用场景: 如果两个或多个条件中有一个满足就行, 用or来连接这些条件,相当于生活中的或者
2)运算规则: 条件1 or 条件2 - 两个条件中有一个为True结果为True,两个都为False结果为False
True or True -> True
True or False -> True
False or True -> True
False or False -> False
"""
num = 23
print('num是否能够同时被3或7整除:', num % 3 == 0 or num % 7 == 0)
print('num是否能够同时被3或7整除:', not (num % 3 != 0 and num % 7 != 0))
year = 200
print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
print('是否是闰年:', not ((year % 4 != 0 or year % 100 == 0) and (year % 400 != 0)))
- not - 逻辑非运算
"""
1)应用场景:如果一个条件正向写很复杂,反向写却很简单
2)运算规则:not 条件 - 对指定条件进行否定
not True -> False
not False -> True
"""
age = 23
print(not age >= 18, age < 18)
num = 23
print(not num % 3 == 0, num % 3 != 0)
num = 23
print('num是否不能同时被3和7整除:', (num % 3 == 0 and num % 7 != 0) or (num % 3 != 0 and num % 7 == 0) or (num % 3 != 0 and num % 7 != 0))
print('num是否不能同时被3和7整除:', num % 21 != 0)
print('num是否不能同时被3和7整除:', not (num % 21 == 0))
print('num是否不能同时被3和7整除:', not (num % 3 == 0 and num % 7 == 0))
-
赋值运算符
-
赋值运算符: =
变量 = 数据 - 右边数据保存到左边变量
a = 10
-
**复合赋值运算符: +=, -=, *=, /=, //=, %=, =
变量 += 数据 - 变量中保存的数据和+=后面的数据进行加法运算,然后将运算结果再赋值给变量
c = 10
c += 2
print(c)
c = 10
c -= 2
print(c)
c = 10
c %= 3
print(c)
print(a := 10) # 海象运算符
- 运算优先级
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
- 数学运算符: ** > *, /, %, // > +, -
- 有括号先算括号里面的
day1 Python编程入门作业
选择题
- 下列哪个语句在Python中是非法的?(B)
A. x = y = z = 1
B. x = (y = z + 1)
C. x, y = y, x
D. x = y - 关于Python变量,下列列说法错误的是 (C)
A. 变量无须指定类型
B. 变量可以重新赋值
C. 变量⽆须先创建和赋值⽽直接使⽤
D. 同一个变量可以保存不同类型的值 - 下⾯哪个不是Python合法的标识符(B)
A. int64
B. 40XL
C. self
D. stu_name - 下列关于Python语⾔说法错误的是(C)
A. Python是解释型语言
B. Python是⾯向对象语⾔
C. Python2.x和Python3.x是完全兼容的
D. 普通的⽂本编辑器也可以写Python程序 - 下列关于print函数用法错误的是(D)
A. print(100)
B. print(100, 200)
C. print(100, ‘hello world!’)
D. print(10 20)
填空题
- Python中单行注释的符号是( # ), 多⾏注释的符号是( “”" “”"或’‘’ ‘’’ )。
- 语句a, b=10,20执⾏后,a的值是( 10 );语句a, a = 10, 20 执⾏后,a的值是( 20 )。
- Python程序文件扩展名是( .py )。
- 在Python中,int表示的数据类型是( 整型 )。
- 在Python中,字符串数据需要⽤( ’ ’ )或( " " )包裹。
- 在Python中,布尔类型有( 2 )个值,分别是( True, False )。
- 如果想要查看⼀个数据或者变量的数据类型,可以用( type() )函数。
编程题
- 写程序提示⽤户输入⽤户名和密码,并且将输⼊的内容保存到不同的变量中。
username = input('请输入用户名:')
password = input('请输入密码:')
- 使⽤一个print输出3个数据,3个数据在⼀行显示,并且用等号(=)隔开。
print(1, 2, 3, sep='=')
print(4, end='=')
print(5, end='=')
print(6, end='')
简答题
-
声明变量的时候, 变量名的注意事项有哪些?
-
请写出Python语言有哪些优点。
-
请写出Python常⻅的应用领域。
-
写出你对今日授课内容中有疑问的地方(或者觉得有困难的知识点)。
day3 数据类型和运算符作业
选择题
-
print(100 - 25 * 3 % 4)
应该输出什么? (B)A. 1
B. 97
C. 25
D. 0
-
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
填空题
-
在Python中表示空类型的是(None)。
-
查看变量中数据的类型的函数名是(type)。
-
已知
x = 3 == 3
,执行结束后,变量x的值为(True)。 -
已知
x = 3
,那么执行语句x += 6
之后,x的值为(9)。 -
表达式
3 ** 2
的值为(9),表达式3 * 2
的值为(6),表达式4 ** 0.5
的值为(2.0)。
编程题
-
写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。
例如:输入 21 打印 True, 输入 9 打印 False。 num = int(input('请输入整数:')) print(f'{num}能否同时被3和7整除:', num % 21 == 0)
-
写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除的条件语句, 并且打印对应的结果。
例如:输入 14 打印 True, 输入 4 打印 False, 输入 21 打印 False。 num = int(input('请输入整数:')) print(f'{num}能否被3或7整除且不能同时被3和7整除:', (num % 3 == 0 or num % 7 == 0) and num % 21 != 0)
-
输入年,写代码判断输入的年是否是闰年,并且打印对应的结果 。(是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年)
例如:输入 2020 打印 True, 输入 2011 打印 False year = int(input('请输入年份:')) print(f'{year}是否闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。
例如: 时间 67 秒 —> 0 时 1 分 7 秒 course_time = 15678 hours = course_time // 3600 minutes = course_time % 3600 // 60 seconds = course_time % 3600 % 60 print(f'{hours}时{minutes}分{seconds}秒')
-
定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!
公式:
体重(kg)/身高(m)的平方值
在18.5 ~ 24.9之间属于正常。例如: 输入体重: 55, 输入身高:1.55, 输出: True weight = float(input('请输入体重(kg):')) height = float(input('请输入身高(m):')) print(18.5 <= weight / height ** 2 <= 24.9)
简答题
-
Python内置数据类型有哪些?
-
写出你对今⽇日授课内容中有疑问的地⽅方(或者觉得有困难的知识点)。