目录
数据类型基础
数据类型: 不同种类的变量值用不同的数据类型描述
数字类型
整形(int)
- 定义方式:
age = 18;age = int(18);int('18')
age = 18;age1 = 19 # 不建议使用
print(age,age1)
age,age1 = 18,19 # 解压缩
- 作用: 描述年龄/id号等
- 使用方式:
+-*/ % // **
( a = 1
b = 2
print(a+b)
print(b-a)
print(a*b)
print(a/b)
print(a//b) # 取整
print(a%b) # 取余
print(a**b) # 幂) - 如果使用
log
方法,导入import cmath
库
作用
年龄/身份证号码/身高/体重等
浮点型(float)
- 定义方式:
salary=3.2;salary=float(3.2);float('3.2')
- 作用:描述薪资等
- 使用方法:
+-*/ % // **
( a = 1
b = 2
print(a+b)
print(b-a)
print(a*b)
print(a/b)
print(a//b) # 取整
print(a%b) # 取余
print(a**b) # 幂) - 如果使用
log
方法,导入import cmath
库
作用:
可以用来表示薪水等
字符串类型
- 定义方式:
name = 'nick';name = "nick"
name = str('nick')
name = '''
nick
nick
'''
name = """
nick
nick
"""
x = str(10) # '10'
- 作用: 名字等
- 使用方法
s1 = 'nick'
s2 = 'handsome'
s1 + s2
s3 = 10 # nickhandsome
s1 + str(10) # nick10
# int(s1) + s3
s1 * 5 # 'nicknicknicknicknick'
列表
- 定义方式: []内用逗号隔开多个元素(所有数据类型)
ctrl+鼠标左键 进入源码模式
- 作用: 存储多个值
- 使用方法
nick_info = ['nick',180,140,['read','run','music']]
nick_info[-1][1] # 'run'
# 仅做了解
lis = [1,2,3]
lis2 = [4,5,6]
print(lis+lis2)
print(lis*2) # [1, 2, 3, 1, 2, 3]
字典
- 定义方式: {}内以逗号隔开键值对 key(一般为字符串,具有描述意义):value(为任意数据类型) # 哈希表
- 作用: 存储多个值,不依赖索引取值,而通过key取值
- 使用方法
nick_info_dict = {'name':'nick','height':180}
nick_info_dict['height']
布尔类型
- True和False,一般只在条件判断的时候
除了0/None/空/False之外所有的数据类型(所有你能看到的东西)都自带布尔值为True
解压缩
一次性取多个值,解压缩的对象有多少个元素,则必须拿多少个
lis = [1,2,3]
x1,x2,x3 = lis # 1,2,3
# 不会用
x1,_,x3 = lis # 1,_,3
*_,x3 = lis # _,_,3
基本运算符
算术运算符
+-*/ % // **
逻辑运算符
- and: 两个条件都为真,即为真,否则都为假
- or:两个条件其中一个为真,则为真,否则都为假
- not: 真变假,假变真
赋值运算符
= += -= *= /= %= //= **=
比较运算符
> >= < <= == !=
身份运算符
- is: 比较两个变量的id
- is not: 比较两个变量的id
(A is not B == not A is B)
运算符的优先级(了解)
- 如果你要优先运算,加括号
数值类型内置方法
整型
- 作用:描述年龄,id
- 定义方式:
x = 10
,x = int('10')
- 使用方法: 算术运算 和 比较比较运算
- 有序无序: 压根没有这一说
- 存一个值还是多个值:一个值
- 可变还是不可变: 不可变
浮点型
- 作用:描述薪资
- 定义方式:
x = 10.1
,x = float('10.1')
- 使用方法: 算术运算 和 比较比较运算
- 有序无序: 压根没有这一说
- 存一个值还是多个值:一个值
- 可变还是不可变: 不可变
字符串类型内置方法
- 作用: 描述姓名,性别
- 定义方法
name = 'nick'
#
换行
# 缩进,4个空格
#
+end='' 覆盖上一次打印
name = r'
a' # 取消
和 的作用
name = '\n\ta' # 取消
和 的作用
- 内置方法
- 优先掌握
- 索引取值
- 切片
- strip
- split
- len长度
- 成员运算
- for 循环
- 需要掌握
- upper/lower
- startswith/endswith
- rstrip/lstrip
- rsplit
- isdigit/isalpha
- join
- replace
- 了解
- find/rfind/index/rindex/count
- capitalize/swapcase/title
- center/ljust/rjust/zfill
- is系列(真正的了解)
- 存一个值还是多个值:一个值
- 有序or无序:有序
- 可变还是不可变:不可变
- 优先掌握
有序or无序
有索引的就是有序,无索引的就是无序
可变or不可变
值变id不变的是可变类型;值变id变的是不可变
列表list
- 定义方式: []内逗号隔开多个元素(任意数据类型)
- 使用方法
- 优先掌握
- 索引取值,索引修改值
- 切片
- 成员运算
- 长度
- for循环
- append
- del删除
- 需要掌握
- insert
- pop
- remove
- count
- find
- index
- extend
- sort
- reverse
- clear
- copy
- ...
- 优先掌握
字典dict
- 定义方式: {}内以逗号隔开键值对,key(具有描述意义,不能为可变数据类型):value(具体的任意数据类型)
- 使用方法
- 优先掌握
- 按key取值,按key修改值,按key增加值
- 成员运算
- 长度
- for循环
- keys/values/items
- del 删除
- get
- 需要掌握
- copy
- update
- clear
- setdefault
- fromkeys
- pop(按key删除)
- popitem(随机删除,但是删除最后一个)
- 优先掌握
元组tuple
- 定义方式: ()内以逗号隔开多个任意数据类型的元素
- 不可更改的列表,创建后就只能是那样了
集合set
1. 定义方式: {}内以逗号隔开多个元素(不能为可变数据类型)
- 使用方法:
布尔类型bool
- True
- False
条件判断后触发,一般不单独使用
一、Python基础实战之猜年龄游戏
- 给定年龄,用户可以猜三次年龄
- 年龄猜对,让用户选择两次奖励
- 用户选择两次奖励后可以退出
age = 18 # 答案
count = 0 # 游戏次数控制
prize_dict = {0: '布娃娃', 1: '变形金刚', 2: '奥特曼', 3: '<Python从入门到放弃>'}
# 核心代码
while count < 3:
inp_age = input('请输入你的年龄>>>') # 与用户交互
# 判断用户是否骚扰(超纲:判断用户输入的是否为数字)
if not inp_age.isdigit():
print('傻逼,你的年龄输错了')
continue
inp_age_int = int(inp_age)
# 核心逻辑,判断年龄
if inp_age_int == age:
print('猜对了')
print(prize_dict) # 打印奖品
# 获取两次奖品
for i in range(2):
prize_choice = input(
'请输入你想要的奖品,如果不想要,则输入"n"退出!!!') # 与用户交互获取奖品
# 判断是否需要奖品
if prize_choice != 'n':
print(f'恭喜你获得奖品: {prize_dict[int(prize_choice)]}')
else:
break
break
elif inp_age_int < age:
print('猜小了')
else:
print('猜大了')
count += 1 # 成功玩一次游戏
if count != 3:
continue
again_choice = input('是否继续游戏,继续请输入"Y",否则任意键直接退出.') # 交互是否再一次
# 判断是否继续
if again_choice == 'Y':
count = 0
数据类型分类
可变or不可变
可变 | 不可变 |
---|---|
列表/字典/集合 | 整型/浮点型/字符串/元组 |
有序or无序
有序 | 无序 |
---|---|
字符串/列表/元组 | 字典/集合 |
一个值or多个值
一个值 | 多个值 |
---|---|
整型/浮点型/字符串 | 列表/元组/字典/集合 |
文件的基本操作
打开文件的流程
# 1. 打开文件
f = open(file_path, 'r')
# 2. 读写操作
f.read() / f.write()
# 3. 关闭文件
f.close()