Day2-变量和运算符
一、输入和输出函数
1.输出函数(打印函数) —print
控制台显示的内容一定是程序中
1)一次打印一个数据
语法:
注意:打印字符串的时候,引号不会显示
print(100)
print("hello world")
print(100+200)
2)同时打印多个数据
语法:
print(10,20)
print(1,2,'abc')
3)定制end
语法:print(数据1, 数据2, 数据3, …, end=字符串)
print打印数据的时候,会先将所有数据依次打印到控制台,打印完数据后,会自动打印end的值(end默认是换行)
print(100)
print(200)
"""
100
200
"""
print(100, end='abc')
print(200)
"""
100abc200
"""
print(100, end='+')
print(200, end='=')
print(100 + 200)
"""
100+200=300
"""
print(10, 20, 30, end='!')
print(40)
"""
10 20 30!40
"""
4)定制sep
语法:
print(数据1, 数据2, 数据3, …, sep=字符串)
print(数据1, 数据2, 数据3, …, sep=字符串, end=字符串)
一个print同时打印多个数据的时候,数据和数据之间的分割方式由sep的值决定,sep默认是空格
print(10, 20, 30, 40, sep=' + ', end='=')
print(10 + 20 + 30 + 40)
"""
10 + 20 + 30 + 40=100
"""
2.输入函数 — input
输入函数就是从控制台获取数据到程序中使用。
1)基本语法
变量 =
input
(输入提示信息) —— 提示用户输入数据,并且将输入的结果保存到变量中
name = input("请输入你的名字:")
print(name)
age = input("请输入你的年龄:")
print(age)
sex = input("请输入你的性别:")
print(sex)
2)input
函数不管输入的数据是什么,得到的数据的类型都是str
(字符串)
类型转换:类型名(数据)
age = int(input("请输入你的年龄:"))
print(age < 18)
weight = float(input('请输入体重(kg):'))
print(weight * 2,'斤')
height =float(input("请输入你的身高(cm):"))
print(height,'cm')
tel = input('请输入你的手机号:')
print(tel)
二、变量
1.数据的使用方法
在程序中数据用的时候应该先将数据保存到变量中,然后再通过使用变量来使用变量中的数据。
2.定义变量(创建变量)
1)语法:变量名 = 数据
2)说明
a.变量名——由程序员自己命名;
2个要求:是标识符;不是关键字
3个规范:见名知义(看到变量名就知道变量中保存的什么数据);不使用系统的函数名、类名和模块名;所有的字母都小写,多个单词之间用下划线隔开。
b. = ——固定写法
c. 数据——可以是任何结果的表达式,比如:具体的某种类型的数据、运算结果、函数调用表达式等
name = 'ren'
dog_name = 'xiaobai' # PEP8命名规范
dogName = 'xiaohu' # 驼峰式命名
z = 10 + 20
print(z)
3.使用变量
使用变量就是使用变量中保存的数据(数据能做的事情,保存数据的变量都可以做)。
a = 10
print(10)
print(a)
num1 = 10
num2 = a
print(num2)
m = 100
print(m)
4.重新给变量赋值
定义完变量以后可以重新给变量赋值,重新赋值后再使用变量,使用的是新的值。
python中同一个变量可以保存不同类型的值。
xx = 100
print(xx)
xx = 'abc'
print(xx)
5.同时定义多个变量
1)变量名1 = 变量名2 = 变量名3 = … = 数据 —— 同时定义多个变量赋相同的值
a = b = c = 100
print(a, b, c)
2)变量名1, 变量名2, 变量名3, … = 数据1, 数据2, 数据3, … —— 同时定义多个变量赋不同的值(变量的数据必须和数据的数量保持一致)
x, y = 100, 200
print(x, y)
案例:交换两个变量的值
# 方法1
m = 123
n = 345
m, n = n, m
print(m, n)
# 方法2
m = 123
n = 345
p = m
m = n
n = p
print(m, n)
6.变量的底层逻辑
python变量存储数据和重新赋值的底层:
- python定义变量的时候,首先,根据数据的大小申请内存的大小,再将数据保存到相应的内存中,并与变量进行关联
- 重新赋值时,要对重新赋值的数据根据数据的大小重新申请内存的大小,再将数据保存到新的内存中,并与变量进行关联
# id函数 —— 获取变量对应的内存地址
a = 10
print(id(a))
a = 100
print(id(a))
三、数学运算符
数学运算符:
+
(加)、-
(减)、*
(乘)、/
(除)、%
(取余、取模)、//
(整除)、**
(幂运算)
1.加减乘除
+
、-
、*
、/
的功能和数学中的+
、-
、*
、÷
的功能一样
print(5+2) # 7
print(5-2) # 3
print(5*2) # 10
print(5/2) # 2.5
print(6/2) # 3.0
如果运算对象中有一个时浮点数,那么结果一定是浮点数(应用于所有数学运算符)
print(10.0 + 20) # 30.0
print(10.0 - 20) # -10.0
print(10.0 * 20) # 200.0
注意:除法运算的结果一定是
float
类型。
print(20 / 10) # 2.0
2.%
(取余、取模)——求余数
x % y
——求x除以y的余数
print(10%3)
print(10%4)
1)应用场景1
判断两个整数之间是否存在整除关系 (判断一个数是否能够被另外一个数整除)。
num1 = 289
num2 = 3
print(num1 % num2 == 0)
num3 = 78
print(num3 % 2 == 0)
2)应用场景2
获取整数的低位数。—— 对10的N次方取余,就可以获取这个数的后N位数
num = 70895
print(num % 10) # 5
print(num % 100) # 95
print(num % 1000) # 895
3.//(整除)
求商,商向小取整
print(5 / 2) # 2.5——>2
print(3.6 // 2) #1.0
print(-5 // 2) #-2.5——>-3
1)应用场景1
计算完整的个数。 —— 求一个数中有多少个完整的另一个数
# 例如:num中有多少个完整10
num = 7374
print(num // 10)
# 例如:time中有多少个完整的小时
time = 718212
print(time // 3600)
2)应用场景2
获取整数的高位数,去掉低位数。 —— 整除10或10的N次方
num =2345
print(num // 10) # 234
print(num // 100) # 23
print(num // 1000) # 2
思考:获取任意一个正整数的十位数。
num = 5298
print("num // 10 % 10") # 9
4.**
幂运算
x ** y
——求x的y次方
print(3**4)
print(5**2)
print(4**0.5) #2.0
print(2**-2) #0.25
print(8**(1/3)) #2.0
四、比较运算符
比较运算符:
>
(大于)、<
(小于)、==
(等于)、!=
(不等于)、>=
(大于等于)、<=
(小于等于)
1.比较运算符的结果一定是布尔值
print(10>20) #False
print(10<20) #True
print(10==20) #False
print(10!=20) #True
num = 29
print(num % 2 == 0) #False
2.支持连写表示范围
age = 22
print(18 <= age <= 28) #True
print(age >= 18 and age <= 28) #True
五、逻辑运算符
逻辑运算符:
and
(逻辑与运算)、or
(逻辑或运算)、not
(逻辑非运算)逻辑运算符的使用是用来在程序中连接多个条件形成复合条件的。
1.and
(逻辑与运算)
1)应用场景
连接需要同时成立的两个条件,相当于生活中的“并且”。
2)运算规则
True and True - True True and False - False False and True - False False and False - False
# 案例:判断num能否同时被3和7整除
num = 89
print('num是否能同时被3和7整除',num % 3 == 0 and num % 7 == 0)
print("num是否能同时被3和7整除",num % 21 == 0)
# 练习:判断num是否是一个大于10的奇数
num = 78
print("num是否是一个大于10的奇数",num > 10 and num % 2 == 1)
2.or
(逻辑或运算)
1)应用场景
如果要求两个或者多个条件有一个成立就可以,就用
or
连接,相当于生活中‘或者‘。
2)运算规则
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)
# 练习:判断year对应的年份是否是闰年
year = 1998
# 闰年:闰年分为世纪闰年(能被400整除)和普通闰年(能被4整除但是不能被100整除)两种
print("year对应的年份是否是闰年",year % 400 == 0 or (year % 4 == 0 and year % 100 != 0))
3.not
(逻辑非)
1)应用场景
对应某一个条件进行否定,相当于生活中的’不’。
2)运算规则
not True ——> False
not False ——> True
# 写出age不大于18的条件
age = 28
print(not age > 18)
六、赋值运算符
赋值运算符:
=
、+=
、-=
、*=
、/=
、%=
、//=
、**=
注意:
a.所有赋值运算符最终的功能都是完成对变量的赋值操作(将数据保存到变量中)
b.所有的赋值运算都没有结果,无法提供数据
1.=
赋值运算
变量
=
数据 ——将=
右边的数据直接保存到左边的变量中。
a = 10
2.复合的赋值运算
变量
+=
数据——将变量中的数据取出来和后面的数据进行加法运算,最后将计算结果重新赋值给前面的变量。
a = 100
a += 10 # 100 + 10 -> 110;a = 110
print(a) # 110
b = 100
b -= 20 #100-20->80;b=80
print(b) #80
b *= 2 #80*2->160;b=160
print(b) #160
b %= 2 #160%2->0;b=0
print(b) #0
3.运算符的优先级
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
**
>*、/、//、%
>+、-
and
>or
- 有括号的先算括号里面的 ——
()