变量
定义
关联一个对象的标识符。
命名
- 必须是字母或下划线开头,后跟字母、数字、下划线;
- 不能使用关键字(蓝色),否则发生语法错误:SyntaxError: invalid syntax;
- 建议命名:字母小写,多个单词以下划线隔开,如:class_name = “xxx”。
赋值
创建一个变量或改变一个变量关联的数据。
语法
变量名 = 数据
变量名1 = 变量名2 = 数据
变量名1, 变量名2, = 数据1, 数据2
"""
变量
程序运行在哪里? -- 内存
程序在处理什么? -- 数据
作用:在内存中操作数据
语法:变量名 = 数据
赋值号=:将右边数据地址复制一份给左边
"""
# 创建变量
name01 = "悟空"
name02 = "八戒"
# 修改变量
name02 = "唐僧"
# 相加产生新数据
name03 = name01 + name02
# 传递数据地址
name04 = name03
"""
变量交换
"""
bridegroom_name = "武大郎"
bride_name = "潘金莲"
# 传统思想:借助第三方变量
# temp = bridegroom_name
# bridegroom_name = bride_name
# bride_name = temp
# 交换律思想:a,b=b,a
bridegroom_name, bride_name = bride_name, bridegroom_name
print("交换后的新郎:" + bridegroom_name)
print("交换后的新娘:" + bride_name)
del 语句
1,语法:
del 变量名1, 变量名2
2,作用:
用于删除变量,同时解除与对象的关联,如果可能则释放对象。
3,自动化内存管理的引用计数:
每个对象记录被变量绑定(引用)的数量,当为0时被销毁。
"""
删除 del
"""
# name01 = "悟空"
# name02 = name01
# 创建2个变量,赋同样的值
name02 = name01 = "悟空"
del name01 # 删除变量,"悟空"存在
# del name02 # 删除变量,"悟空"不存在(引用计数为0)
name02 = "唐僧" # 修改变量,"悟空"不存在(引用计数为0)
2,数据类型
在python中变量没有类型,但关联的对象有类型。
整型int
1,表示整数,包含正数、负数、0,如:-5,100,0等。
2,字面值:
十进制:每位用十种状态计数,逢十进一,写法是0~9;
二进制:每位用二种状态计数,逢二进一,写法是0b开头,后跟0或者1;
八进制:每位用八种状态计数,逢八进一,写法是0o开头,后跟0~7;
十六进制:每位用十六种状态计数,逢十六进一,写法是0x开头,后跟0~9,A~F,a~f。
# 1. 整形int:存储整数
int_number = 10 + 1
print(int_number) # 11
# 2. int 字面值
# 十进制DEC:每位用十种状态计数,逢十进一,写法是0~9。
number01 = 10
# 二进制BIN:每位用二种状态计数,逢二进一,写法是0~1。
number02 = 0b10
# 八进制OCT:每位用八种状态计数,逢八进一,写法是0~7。
number03 = 0o10
# 十六进制HEX:每位用十六种状态计数,逢十六进一,写法是0~9 a(10)~f(15)。
number04 = 0x10
浮点型float
1,表示小数,包含正数、负数,0.0。
2,字面值:
小数:1.0 2.5
科学计数法:e/E (正负号) 指数 。
如:1.23456e5(等同于123456.0)
如:1.23e-2(等同于0.0123)
# 1. 浮点型float:存储小数
float_number = 10.1
# 2. float 字面值
# 小数
number05 = 0.00001
# 科学计数法
number06 = 1e-5
print(number05)
字符型str
1,是用来记录文本信息(文字信息)。
2,字面值:双引号。
# 字符串str:存储文字
name = "悟空"
str_number = "10" + "1" # 字符拼接(没有数学运算)
print(str_number) # "101"
# "10" + 1 # 在Python语言中,不支持str与int运算
布尔型
1,用来表示真和假的类型。
True 表示真(条件满足或成立),本质是1;
False 表示假(条件不满足或不成立),本质是0。
"""
bool运算
bool 布尔类型
值:真的True 假的False
命题:带有判断性质的陈述句
比较运算符
等于== 不等于!=
> < >= <=
"""
# 命题:您是总统
result = input("请输入您的职业:") == "总统"
print(result) # True
print(type(result))
数据类型转换
1,转换为整形:int(数据);
2,转换为浮点型:float(数据);
3,转换为字符串:str(数据);
4,转换为布尔:bool(数据);
结果为False:bool(0) bool(0.0) bool(None)
5,混合类型自动升级:
1 + 2.14 返回的结果是 3.14
1 + 3.0 返回结果是: 4.0
"""
数据类型转换
结果 = 目标类型(待转数据)
"""
# 类型转换
# age = int(input("请输入您的年龄:"))
# print("明年您" + str(age +1) + "岁了")
# 1. str --> int
result01 = int("3") # 3
# int --> str
result02 = str(3)
# 2. str --> float
result03 = float("1.2")
# float --> str
result04 = str(1.2)
# 3. int --> float
result05 = float(15)
# float --> int
result06 = int(1.93)
print(result06) # 1 向下取整
# 4. 字符串转换为其他类型时注意:
# 该字符串必须是该类型的字符表达形式(长得像)
# result07 = int("1.93")
# result08 = float("abc") # 报错
result09 = float("5")
print(result09) # 5.0
print(12) # 可以直接打印数值类型
print("年龄是:" + str(12)) # 因为要按照固定格式显示,所以类型转换
"""
练习:在终端中输入商品单价、购买的数量和支付金额。
计算应该找回多少钱。
效果:
请输入商品单价:5
请输入购买数量:3
请输入支付金额:20
应找回:5.0
"""
# 1. 获取数据
price = float(input("请输入商品单价:"))
count = int(input("请输入购买数量:"))
money = float(input("请输入支付金额:"))
# 2. 逻辑计算
result = money - price * count
# 3. 显示结果
print("应找回:" + str(result))
3,运算符
算数运算符
+ 加法
- 减法
* 乘法
/ 除法:结果为浮点数
// 整除:除的结果去掉小数部分
% 求余
** 幂运算
优先级从高到低:"( )" > "**" > "* / % //" > "+ -"
( )
**
* / % //
+ -
"""
算数运算符
+ - * / // % **
"""
number01 = 5
number02 = 2
# 幂运算 5 的 2次方
print(number01 ** number02) # 25
print(number01 // number02) # 2
print(number01 / number02) # 2.5
print(number01 % number02) # 1
"""
练习:古代的秤,一斤十六两。
在终端中获取两,计算几斤零几两。
效果:
请输入总两数:100
结果为:6斤4两
"""
total_liang = int(input("请输入总两数:"))
jin = total_liang // 16
liang = total_liang % 16
print("结果为:" + str(jin) + "斤" + str(liang) + "两")
增强运算符
y += x 相当于 y = y + x
y -= x 相当于 y = y - x
y *= x 相当于 y = y * x
y /= x 相当于 y = y / x
y //= x 相当于 y = y // x
y %= x 相当于 y = y % x
y **= x 相当于 y = y ** x
"""
增强运算符:在算数运算符基础上增加了对自身赋值的功能
+= -= *= /= //= %= **=
"""
number03 = 10
number03 + 5
print(number03) # 10
number04 = 10
# number04 = number04 + 5
number04 += 5
print(number04) # 15
"""
练习:在终端中输入一个四位整数,计算每位相加和。
例如:录入1234,打印1+2+3+4结果
效果:
请输入四位整数:1234
结果是:10
"""
number = int(input("请输入四位整数:"))
unit01 = number % 10 # 个位
# 1234 // 10 --> 123 % 10 --> 3
unit02 = number // 10 % 10 # 十位
# 1234 // 100 --> 12 % 10 --> 2
unit03 = number // 100 % 10 # 百位
unit04 = number // 1000 # 千位
result = unit01 + unit02 + unit03 + unit04
# 建议使用以下方式:看内存图
result = number % 10
result += number // 10 % 10
result += number // 100 % 10
result += number // 1000
print("结果是:" + str(result))
比较运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
返回布尔类型的值
比较运算的数学表示方式:0 <= x <= 100
# 输入的是正数
print(int(input("请输入数字:")) > 0)
# 输入的是月份
print(1 <= int(input("请输入月份:")) <= 12)
# 输入的不是偶数
print(int(input("请输入数字:")) % 2 != 0)
逻辑运算符
判断两个命题之间关系的运算符,包括与或非。
1,与 and
表示并且的关系,一假俱假。
"""
与and
有钱 并且 有房
两个条件都得满足
如果前面条件不满足,后面条件不判断,结论不成立False
现象:一假俱假
"""
print(True and True) # True
print(False and True) # False
print(True and False) # False
print(False and False) # False
print(int(input("请输入存款:")) >= 1000000 and int(input("请输入几套房:")) >= 1)
2,或 or
表示或者的关系,一真俱真。
"""
或or
有钱 或者 有房
两个条件满足一个就行
如果前面条件满足,后面条件不判断,结论成立True
现象:一真俱真
"""
print(True or True) # True
print(False or True) # True
print(True or False) # True
print(False or False) # False
print(int(input("请输入存款:")) >= 1000000 or int(input("请输入几套房:")) >= 1)
3,非 not
表示取反。
"""
非 not
取反
"""
print(not True) # False
print(not False) # True
短路逻辑
一但结果确定,后面的语句将不再执行。
作用:尽量将复杂(耗时)的判断放在后面。
"""
练习:根据命题写出代码
年龄大于25 并且 身高小于170
职位是高管 或者 年薪大于500000
"""
# print(int(input("请输入年龄:")) > 25 and int(input("请输入身高:")) < 170)
print(input("请输入职位:") == "高管" or int(input("请输入身高:")) > 500000)
身份运算符
语法:
x is y
x is not y
作用:
is 用于判断两个对象是否是同一个对象,是时返回True,否则返回False。
is not 的作用与is相反。
优先级
高到低:
算数运算符 > 比较运算符 > 增强运算符 > 身份运算符 > 逻辑运算符