Python基础数据类型
上期练习讲解
# 练习一.想办法打印出jason
l1 = [11, 22, 'kevin', ['tony', 'jerry', [123, 456, 'jason'] ] ]
#解题思路,先看列表中有几个数据,查看jason在哪个数据中
print(l1[3])
l2 = l1[3] #l2 = ['tony', 'jerry', [123, 456, 'jason'] ]
print(l2[2])
l3 = l2[2] # l3 = [123, 456, 'jason']
print(l3[2])
#使用索引取值,一步步得到我们想要的数据,也可以简化代码
print(l1[3][2][2])
#练习二.想办法打印出大宝贝
d1 = {'name': 'jason',
'others': {'a1': 'heiheihei',
'a2': {'k1': 'hahaha',
'k2': 'hehehe',
'k3': '大宝贝'}
}
}
#解题思路,一步步取值,大括号为字典,字典取值需要用键取值
d2 = d1['others'] # {'a1': 'heiheihei', 'a2': {'k1': 'hahaha', 'k2': 'hehehe', 'k3': '大宝贝'}
d3 = d2['a2'] # {'k1': 'hahaha', 'k2': 'hehehe', 'k3': '大宝贝'}
d4 = d3['k3'] # '大宝贝'
#使用键对取值,一步步得到我们想要的数据,也可以简化代码
print(d1['others']['a2']['k3'])
#练习三,想办法打印出run
data = {'username': 'jason',
'hobby': [11,
22,
{'height': 183,
'hobby': ['read',
'run',
'music'
]
}
]
}
#解题思路,一步步取值,大括号为字典,字典取值需要用键取值,中括号为列表使用引索取值。
data1 = data['hobby'] # [11, 22, {'height': 183, 'hobby': ['read', 'run', 'music' ]
dota2 = data1[2] # {'height': 183, 'hobby': ['read', 'run', 'music' ]
dota3 = dota2['hobby'] #['read', 'run', 'music' ]
dota4 = dota3[1]
#遇到字典类型用键对取值,遇到列表使用引索取值,简化代码
print(data['hobby'][2]['hobby'][1])
数据类型-布尔型bool
1.布尔型bool:用来判断事物,判断逻辑的对与错。大多用于流程控制
2.bool类型只有2种状态
对/真 True
错/假 False
3.python中所有的数据都自带布尔值
代表False的数据值 = 0 None '' [] {} # 空的字符 列表 字典
代表True的数据值 = 除了上面的都是True
4.python中布尔值变量的命名标准 ,使用is开头命名
is_name
is_alive
#举例:生活中的注销账户,其实只是把账户的有效状态布尔值从 有效 变为 无效 (从1变为0)
数据类型-元组tuple
1.元祖tuple:称为‘不可变’的列表 #区别与列表 列表内数据值可以改变,而元祖内同一引索内数据值无法更改
2,代码展示: t1 = (1,2,[2,1],'moon') # 使用小括号 中间可以存放多种数据值
3,元组与列表区别代码展示
l1 = [11, 22, 33]
print(l1[0]) # 获取索引0对应的数据值
l1[0] = 666 #此处可以直接更改了列表内引索位置为0的数据值
print(l1) # [666, 22, 33] 列表内数据可以重新赋值
t1 = (11, 22, 33)
print(t1[0])
t1[0] = 999 # 此处想更改元组内 引索位置为0的数据值
print(t1)
# 运行报错: 'tuple' object does not support item assignment(元组内对象不支持再次赋值)
数据类型-集合set
集合set:没有重复的列表 可以用来去重
列表内数据只能是不可变类型。
代码展示:
s1 = {1,2,3,22,33} #使用大括号定义集合,但是集合内没有 键 对 和字典作用不同。
关于集合,详细知识作用,只会再讲。
用户交互 (input/print)
1,什么是用户交互:
举例:当你登录游戏账户,首先程序会提醒你, 请输入账号, 然后你需要进行输入的操作
然后程序再提醒你,请输入密码,然后你再 输入密码。 这就是程序与用户再交互。
2.如何让用户输入:
input # 获取用户输入
username = input('请输入用户名') #这时候就会显示请输入用户名,然后等待用户输入
#当用户输入完成后,用户输入的用户名会赋值到 username这个变量名。
#用户输入的信息 默认都是 字符串 类型
3.如何输出:
print # 打印 输出数据值
passwold = input('请输入密码')
print(username,passwold) # 括号内既可以放数据值也可以放变量名 并且支持多个逗号隔开即可
4.print自带换行符
格式化输出-占位符
格式化输入:一些固定模版 提前定义好的一些内容。例如,奖状,合同,通知书。
占位符形式1: %s #适用于字符串
代码实现:
certificate = "恭喜,%s同学在2022年度学习中,表现优异特发 三好学生 以资鼓励"
#由于此模版可以适用与多个同学,所以在名字的地方我们使用了占位符 %s。
print(certificate % "周杰伦")
#恭喜,周杰伦同学在2022年度学习中,表现优异特发 三好学生 以资鼓励
也可以支持多个占位符存在
certificate = "恭喜,%s同学在2022年度学习中,表现优异特发 %s 以资鼓励"
#我们尝试在2个地方都使用占位符,姓名,和 奖项
print(certificate % ("周杰伦",'音乐委员'))
# 恭喜,周杰伦同学在2022年度学习中,表现优异特发 音乐委员 以资鼓励
'''注意事项:有几个占位符就需要几个数据值,并且需要用(包起来)'''
占位符形式2: %d #适用于数字。例如 学好 id 等
student_id = "查询到 您的学生id:%d "
print(student_id % 120002 ) #查询到 您的学生id:120002
优点:可以控制数字位数
student_id = "查询到 您的学生id:%06d " # %06d 代表此占位符为6位数
print(student_id % 382 ) # 查询到 您的学生id:000382
基本运算符
运算符号 | 使用作用 | 代码展示 |
---|---|---|
+ | 加法运算 | 2+2 |
- | 减法运算 | 2-2 |
* | 乘法运算 | 2*2 |
/ | 除法运算 | 2/2 |
% | 取余 | 2%2 |
// | 取商 | 2//2 |
** | 平方 | 2**2 |
- 相关简化写法
n = 10
n += 1 # n = n + 1
n -= 1 # n = n - 1
n *= 1 # n = n * 1
n /= 1 # n = n / 1
n %= 1 # n = n % 1
n //= 1 # n = n // 1
n **= 1 # n = n ** 1
常用赋值符
1,链式赋值
num = 100
num1 = 100
num2 = 100
链式赋值展示: num = num1 = num2 = 100
print(num2) # 100
2.交叉赋值
num = 100
num1 = 200
#让数字1和数字2数据值交换
常规代码:
num3 = num #采用中间变量
num = num1
num1 = num3
print(num,num1) # 200 100
交叉赋值法:
num,num1 = num1,num
print(num,num1) # 200 100
3,解压赋值
name_list = ['moon','calvin','alen','tony']
name1 = name_list[0]#常规赋值法
name2 = name_list[1]
name3 = name_list[2]
name4 = name_list[3] #使用引索对列表内数据一个一个进行赋值
解压赋值法
name1,name2,name3,name4 = name_list
print(name1,name2,name3,name4) # moon calvin alen tony
'''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
列表有4个数据,对于也要提供4个变量名。不多不少负责都会报错。
扩展了解:
name1,*b = name_list
print(name1) #moon
print(b) # ['calvin', 'alen', 'tony']
*会自动接收多余的数据 组织成列表赋值给后面的变量名
逻辑运算符
1,and. 与
and连接的多个条件必须全部成立 结果才成立。
例如:你的择偶标准,1,身高162以上 2,肤色白 3,工作稳定,4,性格温柔
1 and 2 and 3 and 4
则代表 1234必须要同时满足 如何有任意一条没有满足 则为 False 不成立
2,or 或
or连接的多个条件只要有一个成立 结果就成立
1 or 2 or 3 or 4
则代表 1234有任意一项满足即可,例如只要肤色白就 True 成立
3, not 非
不在,不属于,不是 ,类似反话
not 1 #不是身高162以上就行
4,混合用法
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
eg:使用括号来进行优先级
成员运算符
in
判断个体是否在群体中
代码举例:
num = [1,2,3,4,5,6]
print(2 in num) # True 因为2在其中所以成立
print(7 in num) # False 因为7在其中所以不成立
num = {1: 11, 2: 22, 3: 33}
print(11 in num) #False 因为11在字典的键中所以不成立
num = {1: 11, 2: 22, 3: 33}
print(2 in num) #True 因为2在字典的键中所以成立
字典成员运算只有键参与
s1 = 'hello world'
print('d' in s1) # True 因为d在z字符串中所以成立
当然字符串也是也可使用的,查找的是每一个索引
身份运算符
is 判断内存地址是否相同 == 判断数据值是否相同
num1 = [1,2,3,4]
num2 = [1,2,3,4]
print(num1 == num2) # True 数据值是相同
print(num1 is num2) # False 内存地址不同
即便数据相同也不代表数据地址相同哦
id 可以查询数据地址
print(id (num1)) #4545094720
print(id (num2)) #4545097088
小练习
练习一:
获取用户输入并打印成下列格式
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
答案:
Name = input('请输入姓名')
Age = input('请输入年龄')
Sex = input('请输入性别')
job = input('请输入工作')
print('------------ info of ',Name,'-----------') #字符串,变量,字符串
print("Name:", Name) #前面是字符串 后面是 变量
print("Age:", Age)
print("Sex:", Sex)
print("job:", job)
print('---------------- end -----------------')
练习二:
准备说出下列变量名v绑定的结果
v1 = 1 or 3 # 1
v2 = 1 and 3 # 3
v3 = 0 and 2 and 1 # 0
v4 = 0 and 2 or 1 #
v5 = 0 and 2 or 1 or 4 #
v6 = 0 or False and 1 #
标签:num1,Python,数据类型,运算符,num,print,id,输入,赋值
From: https://www.cnblogs.com/moongodnnn/p/16732064.html