一、数据类型和变量【重点掌握】
1.常用数据类型
顾名思义,计算机就是用来做数学计算的机器,因此,计算机程序理所当然的可以处理各种数值。但是,计算机能处理的远远不止数值,还可以处理文本,图形,音频,视频,网页等各种各样的数据,而处理不同的数据,需要使用不同的数据类型来进行表示
【面试题】列出Python中常用的数据类型,至少5种
数字型:整型【int】,浮点型【float】,复数【complex】
布尔型:bool,只有两个值,True和False
字符串型:str
列表:list
元组:tuple
字典:dict
集合:set
字节:bytes
空值:NoneType ,只有一个值:None
# 1.数字型 # 整型:int num = 10 print(num) # 浮点型:float num1 = 34.435 print(num1) # 复数:complex n1 = 3 + 9j print(n1) # 2.字符串:str s1 = 'hello world' \ '你好!' print(s1) s2 = "hello world" \ "你好!" print(s2) s3 = """hello world 你好!""" print(s3) s4 = '''hello world 你好!''' print(s4) # \n表示换行 s5 = "hello world\n你好!" print(s5) # 3.布尔型:bool # 只有两个值:True和False b1 = True print(b1) b2 = False print(b2) # 列表:list ****** # # 元组:tuple # # 字典:dict ****** # # 集合:set # # 字节:bytes # # 空值:NoneType ,只有一个值:None # 扩展1:type(x):获取x的数据类型 print(type(num)) # <class 'int'> print(type(num1)) # <class 'float'> print(type(n1)) # <class 'complex'> print(type(s1)) # <class 'str'> print(type(s4)) # <class 'str'> print(type(b1)) # <class 'bool'> # 扩展2:True相当于1,False相当于0,bool类型的数据可以和数字进行运算 print(True + 1) # 2 print(False + 1) # 1
2.变量使用
程序在运行的过程中,表示的值可以随时发生改变的标识符
在程序设计中,变量是一种存储数据的载体【容器】
语法:变量名 = 值
说明:变量名其实就是一个标识符
2.1变量定义和使用
# 1.定义单个变量 n = 45 # 2.变量的重新赋值 # 注意:值可以随时发生改变 num1 = 10 # 变量的定义,10被称为是num1的初始值 print(num1) num1 = "abc" # 变量的重新赋值 print(num1) # 3.定义多个变量 # a.定义多个变量,有共同的初始值 # m1 = 10 # m2 = 10 # m3 = 10 m1 = m2 = m3 = 10 print(m1) print(m3) # b.定义多个变量,有不同的初始值 # 注意:=左边变量的数据和=右边数据的数量一定要一致 a1,a2,a3 = 10,20,30 print(a1) print(a3) # a1,a2,a3 = 10,20 # ValueError: not enough values to unpack (expected 3, got 2) # a2,a3 = 10,20,30 # ValueError: too many values to unpack (expected 2) # 4.扩展:打包pack和拆包unpack # a.pack m1,m2,*m3 = 14,5,7,8,8,9,'a','faghj','2364' print(m1,m2,m3) # 14 5 [7, 8, 8, 9, 'a', 'faghj', '2364'] m1,*m2,m3 = 14,5,7,8,8,9,'a','faghj','2364' print(m1,m2,m3) # 14 [5, 7, 8, 8, 9, 'a', 'faghj'] 2364 *m1,m2,m3 = 14,5,7,8,8,9,'a','faghj','2364' print(m1,m2,m3) # [14, 5, 7, 8, 8, 9, 'a'] faghj 2364 # SyntaxError:基本语法错误 # *m1,*m2,m3 = 14,5,7,8,8,9,'a','faghj','2364' # b.unpack a1,*b1,c1,d1 = [14, 5, 7, 8, 8, 9, 'a'] print(a1,b1,c1,d1) a,b = (10,20) print(a,b) # 5.扩展:交换两个变量的值 【面试题】 # 方式一:定义第三个变量 x = 15 y = 30 print(x,y) temp = x x = y y = temp print(x,y) # 30 15 # 方式二 ******** x = 15 y = 30 print(x,y) x,y = y,x # 工作原理:方式一 print(x,y) # 方式三:加减法 x = 15 y = 30 print(x,y) x = x + y # x = 15 + 30 y = x - y # y = 15 + 30 - 30 x = x - y # x = 15 + 30 - 15 print(x,y) # 方式四:异或^ # 原理:一个数异或另一个数两次,结果还是它本身 print(6 ^ 3 ^ 3) # 6 print(10 ^ 5 ^ 5) # 10 x = 15 y = 30 print(x,y) x = x ^ y # x = 15 ^ 30 y = x ^ y # y = 15 ^ 30 ^ 30 = 15 x = x ^ y # x = 15 ^ 30 ^ 15 = 30 print(x,y) # 6.常量 # 值不能发生改变的标识符,但是,在代码中,只是一种标记 # 常量命名法:所有英文字母全部大写,不同单词使用下划线连接 PI = 3.1415 print(PI) # 注意:只是一种规范,本质还是一个变量 PI = "fhajghj" print(PI)
2.2删除变量
""" 定义变量:相当于该变量在内存中开辟空间的过程,当程序执行完毕,变量所开辟的空间会自动释放 删除变量:相当于手动释放变量在内存中空间的过程 """ # 定义变量:变量名 = 值 # 删除变量:del 变量名 stu_name = "张三" print(stu_name) # 注意:删除一个变量,则该变量会从内存空间中消失,无法再次访问 del stu_name # print(stu_name) # NameError: name 'stu_name' is not defined
2.3变量的类型转换
# 1.int(x):将x转换为整型 ***** # a.float---->int,不涉及四舍五入 print(int(12.96)) # 12 print(int(12.1235364)) # 12 # b.str---->int # 注意:如果将一个字符串转换为整型,该字符串只能由正负号和数字组成,且正负号只能出现在字符串的开头 s1 = "110" print(s1,type(s1)) r1 = int(s1) print(r1,type(r1)) print(110) # print(int('a110')) # ValueError: invalid literal for int() with base 10: 'a110' print(int('+110')) # 正号 print(int('-110')) # 负号 # print(int('1+10')) # print(int('11-0')) # print(int('23.4565745')) # 2.float(x):将x转换为浮点型 # a.int---->float print(float(10)) # b.str---->float # 注意:如果将字符串转换为浮点型,该字符串只能由数字,正负号和小数点组成,且正负号只能出现在字符串的开头 s1 = "110" print(s1,type(s1)) r1 = float(s1) print(r1,type(r1)) print(float("235")) print(float("235.554")) print(float(".235")) print(float("235.")) print(float("+235.355")) print(float("-235.453")) # 3.str(x):将x转换为字符串,x可以是任意类型 print(str(354)) print(str(35.56)) print(str(True)) print(3 + 7) # 数学运算 print('35' + '4637') # 拼接 print(int('35') + int('4637')) # # 数学运算 # 4.bool(x):将x转换为布尔型 # 注意:但凡表示 '没有' 的数据,通过bool转换,结果都是False print(bool(0)) print(bool(0.0)) print(bool(""))
二、输入和输出【重点掌握】
1.输入input
""" input(xxx),xxx可以省略,但是建议添加,而且以字符串的形式添加,用于表示给用户的提示信息 作用:从外部【控制台】获取数据到程序中 工作原理:当程序在执行的过程中,遇到了input(),程序会进入阻塞状态, 目的是为了等待用户的输入,当用户输入完成,按下回车键,则会自动解除阻塞,程序会继续向下执行 注意:无论从控制台输入什么内容,通过input获取到程序中,类型都是字符串 """ # 1. # print('start') # input() # print('end') # 2. username = input("请输入你的用户名:") print("用户名:",username) print(type(username)) # <class 'str'> # 3.注意:根据需求,需要输入几个数据,则使用几次input() # name = input("请输入你的用户名和密码:") # print('结果:',name) # 'zhangsan abc123'
2.输出print
# 1.换行 print("start") print() # 相当于print(end='\n') print("end") # 2.输出单个数据 print('abc') print(34) print(False) # 3.输出多个数据,数据的个数没有限制 print(34,56,6,7,78,8,89,9,'ga','gah',False,4.6,67) # 4.sep:分隔符,当多个数据打印到控制台上的时候,将多个数据分隔,默认值为空格 print(34,56,6,7,78,8,89,9,'ga','gah',False,4.6,67,sep=' ') print(34,56,6,7,78,8,89,9,'ga','gah',False,4.6,67,sep='***') print("*" * 100) # 5.end:结束符,不管打印1个还是多个数据,都会有一个结束符,默认值为\n print('hello') print('hello',end='\n') print("*" * 100) print('hello') print('hello',34,6,7,87,8,98,9,end='~~~~~~') print('hello') # 练习: # 1.输出三个数据,用=隔开 a = 10 b = 20 c = 45 print(a,b,c,sep='=') # 2.从控制台输入用户名和密码,以指定的格式输出 # username = input("请输入你的用户名:") # pwd = input("请输入你的密码:") # print("用户名:",username,'密码:',pwd) # 3.从控制台输入用户的年龄,假设最长寿命为150岁,计算剩余寿命 # 错误写法 # age = input("请输入你的年龄:") # print(150 - age) # 方式一 age = input("请输入你的年龄:") print(150 - int(age)) # 方式二 age = int(input("请输入你的年龄:")) print(150 - age)