-
变量和运算符
变量
1.认识变量和定义变量
1)什么是变量?
变量是用来保存数据的,使在程序中使用数据的时候更方便
2)定义变量(创建变量)
作用:将数据保存到变量中
语法:使用赋值符号=
变量名 = 数据
说明:
a.变量名
要求:是标识符不是关键字,否则报错
规范:
-
见名知其意;
-
不使用函数名、类名、模块名,容易使原功能、意义失效;
-
全部小写,多个单词之间用下划线隔开(也可用驼峰命名法:首字母小写,后续单词首字母大写)
b.在python中单个等号(=)是赋值符号
c.数据:各种数据类型,或者是任意有结果的表达式
3)使用变量
使用变量中保存的数据
4)重新给变量赋值
a=100 a=300 b=2 a=b
5)同时定义多个变量
-
同时定义多个变量赋相同的值:变量1=变量2=变量3=…=数据
-
同时定义多个变量赋不用的值:变量1,变量2…=数据1,数据2…
特殊应用:
交换2个变量的值
1.引入中间变量交换
a,b=100,200 c=a a=b b=c
优点:此方法符合生活,利于理解
缺点:繁琐
2.直接交换(推荐使用)
a,b=100,200 a,b=b,a
优点:简洁
注:交换的时候变量的内存地址不变,可用id()查看;
4)定义变量和变量赋值的底层原理
通过与c和java比较来进行分析
a.定义变量
python自动计算数据大小,然后开辟内存空间并创建;
java和c根据变量定义的类型进行创建;
二者比较:
python创建方便,空间浪费少,但是需要计算所以效率低;
java和c创建的快,但有溢出和浪费的问题;
问题:为什么python定义变量不需要写类型
答:python定义变量申请内存时,自动根据数据大小开辟空间创建,不看类型
b.变量重新赋值
python重新赋值的时候会重新创建,然后调整指针,指向新地址,后续释放原内存;
java创建的时候是直接修改原内存;
问题1:重新赋值的时候为什么可以赋不同类型的值
答:重新赋值会重新申请新的内存
问题2:为什么python可以直接计算 9999*9999
答:申请内存的时候会先提前计算需要的大小
运算符
数学运算符类型:
+(加),-(减),*(乘),/(除),%(取余、取模),//(整除),**(幂运算)
-
+(加),-(减),*(乘),/(除)
与数学中的计算一样
注:+、-、*操作,运算对象是什么结果就是什么
/ (除法)的结果一定是floatprint(1+2) 3 print(2-1) 1 print(3*4) 12 print(4/2) 2.0 print(5/2) 2.5
-
%(取余)求余数
x%y 求x除以y的余数
print(10%3) 1 print(-10%3) 2
应用场景:取低位数
-
//(整除)
x//y 求x除以y的商,商向小取整
print(10//4) 2 print(-10//4) -3
应用场景1:(在知道两个数能整除的情况下)获取整型的商
应用场景2:整数去掉低位数,保留高位数 - 对10或者10的N次幂进行整除操作
练习:取十位数
方法1:先取余再整除(当成高位取)
方法2:先整除再取余(当成低位取)
num=120 print((num%100)//10) print(num//10%10)
-
**(幂运算)
与数学中计算方法的一样
示例:x**y 求x的y次方
print(10**10) 10000000000 print(2**-2) # 1/(2*2) 0.25 print(4**0.5) # 开方 2.0
比较运算符:>、<、>=、<=、==、!=
-
所有的比较运算符结果都是布尔值
应用1:判断num能否被4整除
num = 23 print(num % 4 == 0) # False
应用2:判断num是否是浮点数
num = 23 print(num % 4 == 0) # False
应用3:判断指定的年龄是否成年
age = 3 print('是否成年:', age >= 18)
-
python的比较运算符支持连写表示
例如:判断num是在0到1的范围内
num = 0.3 print(0 <= num <= 1) # print(num >= 0 and num <= 1)
逻辑运算符:and(与)、or(或)、not(非)
- and 逻辑与运算
应用场景:用于连接要求同时满足的多个条件,相当于生活中的并且
规则:条件1 and 条件2 两个条件都是True,结果为True,一个False结果就是False
True and True --> True True and False --> False
- or 逻辑或运算
应用场景:如果两个或者多个条件中主要有一个满足就行,相当于或者
规则:条件1 and 条件2 一真为真,两否为否
True or True --> True True or False --> True False or False --> False
例如:
判断闰年(普通闰年 - 能被4整除但是不能被100整除的年;世纪闰年 - 能被400整除的年)
year = 400 print('是否是闰年:', (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0) ) # print 是否是闰年: True
-
not 逻辑非运算
应用场景:如果一个条件正向写情况很多很复杂,反向写却很简单,就讲条件反写,再加not
运算规则:not 条件 - 对指定条件进行否定
not True -> False not False -> True
示例:判断num是否不能同时被3和7整除
方法1:正向写条件
不能同时被3和7整除: 能被3整除但是不能被7整除、能被7整除但是不能被3整除、既不能被3整除也不能被7整除
1)能被3整除但是不能被7整除:num % 3 == 0 and num % 7 != 0
2)能被7整除但是不能被3整除:num % 3 != 0 and num % 7 == 0
3)既不能被3整除也不能被7整除:num % 3 != 0 and num % 7 != 0
print((num % 3 == 0 and num % 7 != 0) or (num % 3 != 0 and num % 7 == 0) or (num % 3 != 0 and num % 7 != 0))
方法2:反向写条件
反向写条件: num能同时被3和7整除
print(not num % 21 == 0)
赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
注意1:所有的赋值运算符的作用都是将某个数据保存到某个变量中
注意2:所有的赋值运算都没有没结果
- =
变量 = 数据 - 将右边的数据保存到左边的变量中
例如:a=10
-
+=、-=、*=、/=、%=、//=、**=
变量 += 数据 - 将变量中保存的数据和+=后面的数据进行加法运算,然后将运算结果再赋值给变量
注意:这儿的变量必须是已经赋值过的变量
例如:
c = 10 c += 2 # 相当于: c = c + 2 -> c = 10 + 2 -> c = 12 print(c) # 12
运算符优先级
原则:
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
数学运算符:** > *、/、%、//、 > +、-
有括号先算括号
课后作业
day2 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)函数。
编程题
-
写程序提示⽤户输入⽤户名和密码,并且将输⼊的内容保存到不同的变量中。
name = input('请输入姓名:') password = input('请输入密码:')
-
使⽤一个print输出3个数据,3个数据在⼀行显示,并且用等号(=)隔开。
print(123,"ok",False,sep='=')
简答题
- 声明变量的时候, 变量名的注意事项有哪些?
是标识符且不能是关键字; - 请写出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 的方法有(C,D)。
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整除的条件语句, 并且打印对应的结果。
x = eval(input('please input a int num:')) if x % 3 ==0 and x % 7 == 0: print('({})能同时被3和7整除'.format(x)) print(True) else: print('({})不能同时被3和7整除'.format(x)) print(False)
-
写出判断一个数是否能够被3或者7整除,但是不能同时被3和7整除的条件语句, 并且打印对应的结果。
例如:输入 14 打印 True, 输入 4 打印 False, 输入 21 打印 False。 x = int(input('请输入一个整数:')) print('是否能被3或者7整除,但有不能同时被3和7整除:',(x % 3 ==0 or x % 7 ==0 ) and not x % 21 == 0)
-
输入年,写代码判断输入的年是否是闰年,并且打印对应的结果 。(是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年)
例如:输入 2020 打印 True, 输入 2011 打印 False year = 2020 print('是否是闰年:', (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0) )
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。
例如: 时间 67 秒 —> 0 时 1 分 7 秒 time = 15678 hour = time//3600 min = time%3600//60 sec = time % 3600 % 60 print(f'{time}秒 -> {hour}时{min}分{sec}秒') print(hour*3600+min*60+sec)
-
定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!
公式:
体重(kg)/身高(m)的平方值
在18.5 ~ 24.9之间属于正常。例如: 输入体重: 55, 输入身高:1.55, 输出: True height = 1.55 weight = 55 print('身材是否标准:', 18.5 <= weight / (height ** 2) <= 24.9)
简答题
- Python内置数据类型有哪些?
1.int;2.float;3.bool;4.None
-
Day2-变量和运算符学习总结
于 2022-04-13 20:47:34 首次发布