一、格式化输出【重点掌握】
方式一:占位符 不常用
%d:可以匹配数字,一般匹配整型【整数】 %f:可以匹配数字,一般匹配浮点型【小数】 %s:可以匹配Python中的一切数据类型方式二:f-string 常用
# 方式一:占位符 不常用 """ %d:可以匹配数字,一般匹配整型【整数】 %f:可以匹配数字,一般匹配浮点型【小数】 %s:可以匹配Python中的一切数据类型 """ print(6,10,'abc') print('姓名:','张三','年龄:',18,sep='') # 占位符的语法:'指定格式的占位符' % (实际的数据) # print("我是%s,今年%s,爱好%s" % (name,age,hobby)) # 注意1:占位符的数量和实际数据的数量一定要保持一致 # TypeError: not all arguments converted during string formatting # print("我是%s,今年%s,爱好%s" % ('abc',10,'dance',23)) # TypeError: not enough arguments for format string # print("我是%s,今年%s,爱好%s" % ('abc',10)) # 注意2:实际的数据和占位符一定要达到类型的匹配 print("我是%s,今年%s,爱好%s" % ('abc',10,34.12)) # TypeError: %d format: a number is required, not str # print("我是%s,今年%s,爱好%d" % ('abc',10,'dance')) # print("我是%s,今年%s,爱好%d" % ('abc',10,34.16)) # 注意3:%.nd,n为大于等于1的数字,表示整型的格式化,当n大于数字的位数,则会自动在数字的前面补0 print("我是%s,今年%s,学号%d" % ('abc',10,34)) print("我是%s,今年%s,学号%.3d" % ('abc',10,34)) print("我是%s,今年%s,学号%.5d" % ('abc',10,34)) print("我是%s,今年%s,学号%.1d" % ('abc',10,34)) # 注意4:%.nf ,n为大于等于1的数字,表示保留小数点后n位 ******** print("我是%s,今年%s,体重%f" % ('abc',10,180.3475)) print("我是%s,今年%s,体重%.2f" % ('abc',10,180.3475)) print("我是%s,今年%s,体重%.f" % ('abc',10,180.7475)) # 取整,会四舍五入 # 方式二:f-string 常用 ********** # 语法格式:f"{}-{}....." print("我是%s,今年%s,爱好%s" % ('abc', 10, 'dance')) print(f"我是{'abc'},今年{10},爱好{'dance'}") # 注意1:如果出现引号套用的情况,一定要岔开使用 # "''" '""' print(f"我是{'abc'},今年{10},爱好{'dance'}") print(f'我是{"abc"},今年{10},爱好{"dance"}') # 注意2:f"{xx:.nf}" 等价于%.nf print("%.2f" % (34.45726)) print(f"{34.45726:.2f}") # 作业 # 1.从控制台分别输入姓名,年龄和爱好,并按照指定格式输出到控制台上 """ 运行效果: 请输入姓名:张三 请输入年龄:18 请输入爱好:吹牛逼 我是张三,今年18,爱好吹牛逼 """ name = input("请输入姓名:") age = input("请输入年龄:") hobby = input("请输入爱好:") print('我是',name,',','今年',age,',','爱好',hobby,sep='') print("我是%s,今年%s,爱好%s" % (name,age,hobby)) print(f"我是{name},今年{age},爱好{hobby}")
二、变量【重点掌握】
1.数据类型
顾名思义,计算机就是用来做数学计算的机器,因此,计算机程序理所当然的可以处理各种数值。但是,计算机能处理的远远不止数值,还可以处理文本,图形,音频,视频,网页等各种各样的数据,而处理不同的数据,需要使用不同的数据类型来进行表示
【面试题】Python中常用的数据类型:
数字型:整型【int】,浮点型【float】,复数【complex】
布尔型:bool,只有两个值:True和False,True可以被当做1使用,False可以被当做0使用
字符串型:str
列表:list
元组:tuple
字典:dict
集合:set
字节:bytes
空值:NoneType,只有一个值:None
2.定义变量
程序在运行的过程中,表示的值可以随时发生改变的标识符
在程序设计中,变量是一种存储数据的载体【容器】
语法:变量名 = 值
说明:变量名其实就是一个标识符
# 1.语法:变量名 = 值 # 注意:涉及到=、+等运算符时,在运算符的两端添加空格,更加符合语法规范 # 前期常用的类型 # a.数字:int/float/complex n1 = 10 n2 = 34.19 n3 = 5 + 3j print(n1,n2,n3) # b.字符串:str s1 = '4565' \ 'fhah' \ '学习' \ '¥#' s2 = "4565fhah学习¥#" print(s1) print(s2) # 可以在三引号的内部进行随意换行 s3 = """4565 fhah 学习 ¥#""" print(s3) s3 = '''4565 fhah 学习 ¥#''' print(s3) # c.布尔型:bool # 只有两个值:True和False b1 = True b2 = False print(b1,b2) # 如果布尔型的数据和数字进行数学运算,True会被当成1使用,False会被当成0使用 print(b1 + 1) print(b2 + 1) # 后期会重点讲解的数据类型,目前了解 # a.列表:list list1 = [34,6,8,9,9] print(list1) # b.元组:tuple tuple1 = (34,6,8,9,9) print(tuple1) # c.字典:dict dict1 = {'a':10,'b':20,'c':30} print(dict1) # d.集合:set set1 = {45,2,7,9,0,29} print(set1) # e.字节:bytes by1 = b'5fhkgh' print(by1) # f.空值:NoneType # 只有一个值:None n = None print(n) # 2.在定义变量的同时可以声明类型,后期才会用到 name:str = 'abc' # 3.定义多个变量 # a x1 = x2 = x3 = 88 print(x1,x2,x3) # 等价于 x1 = 88 x2 = 88 x3 = 88 # b. y1,y2,y3 = 66,77,88 print(y1,y2,y3) # 注意:在默认情况下,当同时定义多个变量,变量和数据的数量一定要保持一致 # y1,y2,y3 = 66,77,88,99 # ValueError: too many values to unpack (expected 3) # y1,y2,y3,y4 = 66,77,88 # ValueError: not enough values to unpack (expected 4, got 3)
3.变量的使用
变量命名法:所有的字母全小写,不同单词之间使用下划线连接
常量命名法:所有的字母全大写,不同单词之间使用下划线连接
# 1.可以给变量重新赋值 # 注意:Python的代码是从上往下依次执行的 num = 10 # 10被称为初始值 print(num) num = 888 #888被称为重新赋的值 print(num) # 2.id(x)是系统功能,获取数据x在计算机内存中的地址 # 注意:每定义一个变量,变量就需要在内存中开辟空间 # 获取一个变量的地址,实际获取的是该变量中存储的数据的地址 a = 56 print(id(a)) print(id(56)) # 3.type(x)是系统功能,获取数据x的数据类型 a1 = 67 a2 = '67' print(a1,type(a1)) # 67 <class 'int'> print(a2,type(a2)) # 67 <class 'str'> b1 = True print(type(b1)) # <class 'bool'> # 注意:但凡通过input从控制台输入的数据,不管输入什么数据,类型都是字符串 # age = input("请输入你的年龄:") # print(age,type(age)) # 18 <class 'str'> # 4.常量 # 注意:在程序中,如果希望一个变量表示的值不被修改,则将该变量定义为常量 # 变量命名法:所有的字母全小写,不同单词之间使用下划线连接 # 常量命名法:所有的字母全大写,不同单词之间使用下划线连接 # 常量命令法只是一个标记或提示作用,非要重新赋值,还是可以正常操作的 PI = 3.14 print(PI) # PI = 'gaga' # print(PI)
4.变量的应用
# 1.【面试题】交换两个变量的值 # a.方式一:增加一个中间变量 ******* num1 = 10 num2 = 20 temp = num1 num1 = num2 num2 = temp print(num1,num2) # b.方式二:Python中特有的语法 ****** num1 = 10 num2 = 20 num1,num2 = num2,num1 print(num1,num2) # c.方式三:加减法 num1 = 10 num2 = 20 num1 = num1 + num2 # num1 = 10 + 20 num2 = num1 - num2 # num2 = 30 - 20 = 10 num1 = num1 - num2 # num1 = 30 - 10= 20 print(num1,num2) # 2.【面试题】打包和拆包 # y1,y2,y3 = 66,77,88,99 # ValueError: too many values to unpack (expected 3) # *:所有 # 打包 y1,y2,*y3 = 66,77,88,99,5,7,87,9,45,67,8 print(y1,y2,y3) y1,*y2,y3 = 66,77,88,99,5,7,87,9,45,67,8 print(y1,y2,y3) *y1,y2,y3 = 66,77,88,99,5,7,87,9,45,67,8 print(y1,y2,y3) # 拆包 a,b,c = [4,6,8] print(a,b,c) a,b,c = (4,6,8) print(a,b,c) a,b,*c = (4,6,8,45,67,8,90) print(a,b,c)
5.删除变量
定义变量:从无到有,语法:变量名 = 值,是在计算机的内存中开辟空间的过程删除变量:从有到无,语法:del 变量名,该变量在计算机内存中占用的空间被销毁的过程
# 1.定义变量 name = 'zhangsan' print(name) # 2.删除变量 del name # 注意:一个变量一旦被删除,相当于该变量未被定义,所以变量一定要先定义,然后才能使用 # print(name) # NameError: name 'name' is not defined print(num) # NameError: name 'num' is not defined
6.变量的类型转换
int(x):将x转换为整型
float(x):将x转换为浮点型
str(x):将x转换为字符串,x可以是任意类型
bool(x):将x转换为布尔型
# 需求:假设人的最长寿命是130,从控制台输入年龄,计算剩余寿命 # age = input("请输入你的年龄:") # 错误写法: # print(f"剩余寿命:{130 - age}") # TypeError: unsupported operand type(s) for -: 'int' and 'str' # 正确写法 # a # age = input("请输入你的年龄:") # 注意:int(x):x作为一个字符串,只能由0-9的数字组成 # print(f"剩余寿命:{130 - int(age)}") # b. # age = input("请输入你的年龄:") # str # age = int(age) # 重新赋值,int # print(f"剩余寿命:{130 - age}") # c. age = int(input("请输入你的年龄:")) # int print(f"剩余寿命:{130 - age}")