一、数据类型和变量【重点掌握】
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)