1.常用数据类型
顾名思义,计算机就是用来做数学计算的机器,因此,计算机程序理所当然的可以处理各种数值。 但是,计算机能处理的远远不止数值,还可以处理文本,图形,音频,视频,网页等各种各样的数据,而处理不同的数据,需要使用不同的数据类型来进行表示
数字型:整型【int】,浮点型【float】,复数【complex】 布尔型:bool,只有两个值,True和False,注意:True可以被当做1使用,False可以被当做0使用 字符串型:str 列表:list 元组:tuple 字典:dict 集合:set 字节:bytes 空值:NoneType,只有一个值:None
2.变量的使用
概念:程序在运行的过程中,表示的值可以随时发生改变的标识符
在程序设计中,变量是一种存储数据的载体【容器】
语法:变量名 = 值
说明:变量名其实就是一个标识符
2.1变量的定义
# 1.变量的定义
# 语法:变量名 = 值
# 变量的本质:变量是一种存储数据的载体【容器】
# 一定要先定义变量,然后才能使用;
# 当定义一个变量之后,相当于在计算机的内存中开辟了一份空间,该空间中存储了一个指定的数据
# print(age) # NameError: name 'age' is not defined
# 整型:int
num1 = 13 # num1是一个变量,其中存储的数据是13
print(num1)
# 浮点型:float
num2 = 34.78 # num2是一个变量,其中存储的数据是34.78
print(num2)
# 布尔型:bool
b1 = True
b2 = False
print(b1,b2)
# 注意1:布尔值可以和数字进行运算,True被当做1使用,False可以被当做0使用
print(b1 + 1)
print(b2 + 1)
# 字符串:str
# 注意2:字符串可以用单引号或双引号表示,其中可以是任意的字符,包括:数字,字母,特殊符号,中文
str1 = '34fhag计算机……%¥#'
print(str1)
str2 = "34fhag计算机……%¥#"
print(str2)
# 2.定义变量的同时声明类型【了解】
# 注意3:后期实际开发中,如果声明了类型,当使用变量相关的功能时候可以提示
num3:int = 100
print(num3)
# 3.定义多个变量
# a
m1 = m2 = m3 = 66
print(m1,m2,m3) # 66
# b
# 注意4:当以n1,n2,n3 = x1,x2,x3方式定义多个变量,变量名的个数和数值的个数必须相等
# n1,n2,n3 = 88 # TypeError
"""
Traceback (most recent call last):
File "/Users/Desktop/Code/1.变量的定义.py【报错的文件】", line 35【报错的代码处】, in <module>
n1,n2,n3 = 88
TypeError【报错类型】: cannot unpack拆包 non-iterable容器 int object【报错信息描述】
"""
# n1,n2,n3 = 88,34,567,68,8
"""
Traceback (most recent call last):
File "/Users/Desktop/Code/1.变量的定义.py", line 43, in <module>
n1,n2,n3 = 88,34,567,68,8
ValueError: too many values to unpack (expected期望 3)
"""
n1,n2,n3 = 88,35,100
print(n1,n2,n3)
2.2变量的使用
# 1.变量的重新赋值
name = 'zhangsan' # 定义,zhangsan被称为初始值
print(name)
name = 'lisi' # 重新赋值【后出现的值会覆盖之前的值】
print(name)
# 2.id(x):获取变量x在内存中的地址
# 注意:每个数据在内存中都有一份独一无二的地址,定义变量之后,变量中实际上存储的是数据的地址
num = 34
print(num,id(num))
print(id(34))
num = 100
print(num,id(num))
print(id(100))
# 3.type(x):获取变量x的数据类型
print(type(name)) # <class 'str'>
print(type(num)) # <class 'int'>
age1 = 18
print(age1,type(age1)) # 18 <class 'int'>
age2 = '18'
print(age2,type(age2)) # 18 <class 'str'>
# 4.常量
# 概念:一个标识符表示的值无需发生改变,则表示成常量
# 注意:在程序中,如果一个变量表示的值无需发生更改,则将该变量定义为常量
# 常量命名法:所有的字母全部大写,不同单词之间使用下划线连接
PI = 3.14
print(PI)
# PI = 6
# print(PI)
# 常量命名法只是一个标记,标记该变量表示的值不要被随意修改,如果非要修改,仍然可以修改
2.3变量的应用
# 1.需求:从控制台输入你的姓名,年龄,爱好,输出
# name = input("姓名:")
# age = input('年龄:')
# hobby = input('爱好:')
# print("姓名:",name,'年龄:',age,'爱好:',hobby)
# 2.需求:交换两个变量的值
# 方式一
a = 10
b = 20
temp = a # temp = 10
a = b # a = 20
b = temp # b = 10
print(a,b) # 20 10
# 方式二
a = 10
b = 20
a,b = b,a # Python特有的语法,底层的工作原理方式一
print(a,b)
# 方式三:
a = 10
b = 20
a = a + b # a = 30
b = a - b # b = 10
a = a - b # a = 20
print(a,b)
# 3.扩展:pack和unpack:打包和拆包
# a.拆包:将一个容器中的多个数据进行拆分,拆分成不同的部分
x,y,*z = 234,45,65,7,8
print(x,y,z) # 234 45 [65, 7, 8]列表
x,*y,z = 234,45,65,7,8
print(x,y,z) # 234 [45, 65, 7] 8
*x,y,z = 234,45,65,7,8
print(x,y,z) # [234, 45, 65] 7 8
a,b,c = [45,7,78]
print(a,b,c)
# b.打包:将多个零散的数据转换为一个容器
def test(*num):
print(num) # (34, 56, 56, 67, 8, 8, 89, 89, 80)元组
test(34,56,56,67,8,8,89,89,80)
2.4删除变量
"""
变量的定义:从无到有
变量的删除:从有到无
"""
# 1.定义【开辟空间】
num = 10
print(num)
# 2.删除【销毁变量】
# 注意1:如果一个变量被删除,则相当于该变量从内存空间中被销毁
# 语法:del 变量名
del num
# print(num) # NameError: name 'num' is not defined
# 3.内存中的变量
name = '小明'
print(name)
name = 'jack'
print(name)
"""
Python中内存的工作原理:
当定义一个变量,会在内存中开辟一份空间,当该变量被删除或某个数据没有变量指向它,
则这些数据都会被系统的垃圾回收机制回收,该被删除的变量或数据所占用的空间会被释放掉,后期可以重复利用
"""
2.5变量的类型转换
str(x):将x转换为字符串,x可以是任意类型
int(x):将x转换为整型
float(x):将x转换为浮点型
bool(x):将x转换为布尔型
# 注意:类型的转换,是为了将一种类型转换为另一种类型
# 1.str(x):将x转换为字符串,x可以是任意类型
a1 = 10
print(a1,type(a1))
r1 = str(a1)
print(r1,type(r1))
# print(str('abc'))
# 2.int(x):将x转换为整型,x可以是float,bool,str
# 如果x是字符串,则x只能由数字和正负号组成,且正负号只能出现在字符串的开头
print(int(34.6))
print(int(34.1))
# print(int(True),int(False)) # 没有必要
print(int('110'))
print(int('+110'))
print(int('-110'))
# print(int('a110')) # ValueError: invalid literal for int() with base 10: 'a110'
# print(int('1+10')) # ValueError: invalid literal for int() with base 10: '1+10'
# 3.float(x):将x转换为浮点型,x可以是int,bool,str
# 如果x是字符串,则x只能由数字,小数点和正负号组成,且正负号只能出现在字符串的开头
print(float(34))
print(float(True),float(False))
print(float("234"))
print(float(".234"))
print(float("2.34"))
print(float("234."))
print(float("+234."))
print(float("-234."))
# print(float("a234.")) # ValueError: could not convert string to float: 'a234.'
# 4.bool(x):将x转换为布尔型,x可以是任意类型
# 结论:但凡是每种数据类型中表示空的情况,通过bool()转换,最终的结果都是False
# 应用:if语句和while循环中作为条件使用
print(bool(0),bool(6))
print(bool(0.0),bool(46.7))
print(bool(""),bool("fahjga24"))
print(bool([])) # 空列表
print(bool(())) # 空元组
print(bool({})) # 空字典
print(bool(None)) # 空值
# 练习:从控制台输入一个年龄,假设人的最长寿命为130岁,计算剩余寿命
MAX_AGE = 130
age = input("请输入你的年龄:")
# print(type(age))
balance = MAX_AGE - int(age)
print("剩余寿命:",balance)