day02 变量和运算符
- 基础语法
- 注释:单行注释, 多行注释
- 行和缩进
- 基本数据和数据类型
- 数字, 文本, 布尔, 空值
- 查看类型, 类型转换
- 输入和输出函数
- 输出函数print()
- 基本使用, 一行多数据输出, 定制end, 定制sep
- 输入函数input()
- 输入提示, 获取到的数据是字符串, 类型转换与input()的结合
先将数据存到变量,再使用变量来使用数据
- 定义(创建)变量: 计算数据长度, 识别数据类型(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)
-
应用:交换变量的值
万能法:加中间变量
python:变量1, 变量2 = 变量2, 变量1
m, n = 10, 20 m, n = n, m print(m, n)
-
-
定义变量和给变量重新赋值的底层原理
-
为什么python定义变量不需要写类型?
python定义变量内存申请多大看数据需要多大,不看类型
-
为什么重新赋值的时候可以赋不同类型的值?
重新赋值的时候会重新申请新的内存
-
为什么python可以直接计算99999999?**
申请内存的时候会先提前计算存储这个数据需要多大内存,需要多大就申请多大
内存空间要多大,就看转换成二进制有多少位
-
补充1:获取内存地址的工具:id(变量)
x = 100 print(id(x)) x = 2000 print(id(x)) x = '100' print(id(x))
-
补充2:计算机内存单位
位(bit)(计算机内存最小单位)
1字节(bytes)(内存申请最小单位) = 8位
1kb = 1024字节
1Mb = 1024kb
1Gb = 1024Mb
1Tb = 1024Gb -
数学运算符
数学运算符 | 意义 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余, 取模, 模运算 |
// | 整除 |
** | 幂运算 |
- *+, -, , /:和数学中一样
注意: +, -, * 操作,如果操作数据中有浮点数结果就是浮点数,都是整数结果就是整数
/ 的结果一定是浮点数
print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)
- % - 取余, 取模(求余数)
print(10 % 3)
- 应用场景1: 判断整除关系 - 余数是否为0
num = 21
print(num % 2 == 0)
- 应用场景2:取整数的低位数 - 对10或者10的N次幂取余
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
- 应用场景1:(在知道两个数能整除的情况下)获取整型的商
print(8 / 2)
print(8 // 2)
- 应用场景2:整数去掉低位数,保留高位数 - 对10或者10的N次幂进行整除操作
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) # 复数
格式化代码:ctrl + alt + l
比较运算符: >, <, >=, <=, ==, !=
- 所有比较运算符的运算结果都是布尔值
print(10 > 30)
print(10 >= 10)
print(10 == 20)
print(10 <= 20)
print(10 != 20)
- 判断能否被4整除
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
"""
- 获得奖学金的条件:绩点不低于3.5,并且操评分大于90
gpa = 3.5
score = 95
print('是否能获取奖学金:', gpa >= 3.5 and score > 90)
print('是否能获取奖学金:', not (gpa < 3.5 or score <= 90))
- 练习1:判断num是否能够同时被3和7整除
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是否能够同时被3或7整除
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))
练习:判断指定的年是否是闰年
闰年分为普通闰年和世纪闰年两种, 普通闰年 - 能被4整除但是不能被100整除的年;世纪闰年 - 能被400整除的年
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
"""
- 年龄不大于等于18
age = 23
print(not age >= 18, age < 18)
- num不能被3整除
num = 23
print(not num % 3 == 0, num % 3 != 0)
- 示例: 判断num是否不能同时被3和7整除
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))
注意1:所有赋值运算符的作用都是将某个数据保存到某个变量中
所有赋值运算都没有结果, 除了海象运算符
-
赋值运算符: =
变量 = 数据 - 右边数据保存到左边变量
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内置数据类型有哪些?
数字数据: 整型(int), 浮点型(float)
文本类型: 字符串(str)(也是容器型数据)
布尔值: bool
空值: None
容器型:列表(list), 元组(tuple), 集合(set), 字典(dict)等
-
写出你对今⽇日授课内容中有疑问的地⽅方(或者觉得有困难的知识点)。
暂无