今日学习目标:
了解python基础语法(基本数据类型:字典,集合,元组,布尔值;人机交互,运算符)今日学习内容:
内容概要:
-
基本数据类型
-
用户交互
-
格式化输出
-
运算符
内容详情:
基本数据类型:
(五)、字典 dict
1.字典是另一种存储数据的格式。字典的每个元素都由两部分组成(列表的每个元素只有一个部分),前一部分称为键,后一部分称为值,中间用冒号相连。
2.字典类型是键值对的集合
3.字典使用大括号{}表示,键值间用冒号分隔,键值对间用逗号分隔
强调:字典是不支持索引取值的 因为字典内部是无序的
#格式
字典名 = {<键1>:<值1>, <键2>:<值2>, ..., <键n>:<值n>}
d = {"中国": "北京", "美国": "华盛顿", "法国": "巴黎"}
练习题
"""理解思路即可 该题仅仅是为了练习而已"""
data = {
'username': 'jason',
'age': 18,
'addr': ['北京', '上海', {'省份': [{'安徽': ['合肥', '芜湖'], '上海': ['张江', '青浦', '浦东']}, '河南', '山东']}]
}
# 利用索引和按k取值 获取jason的家乡 芜湖
# 1.先获取键addr对应的值
big_list = data['addr'] # 存储addr对应的大列表
# 2.利用索引取值获取列表第三个元素
little_dict = big_list[2] # 存储小字典
# 3.利用键获取值
little_list = little_dict['省份']
# 4.利用索引取值获取最终的字典
l1_dict = little_list[0]
# 5.利用键取值 再利用索引
print(l1_dict['安徽'][1])
# 后期熟练之后一行代码即可
print(data['addr'][2]['省份'][0]['安徽'][1])
运行结果:
(六)、集合 set(类比一维数组的集合)
集合:多个元素的无序组合,使用大括号{}表示,元素间用逗号分隔。
基本功能:集合的两个基本功能分别是去重和成员测试。
特点:
1.无序:元素间没有顺序,因此,要求元素不能相同,元素必须是不可变类型。
2.非一致性:元素类型可以不同。
3.无索引:不能对某个元素进行定点索引,可以遍历或随机获取元素。
# 大括号括起来 内部存放多个元素 元素逗号隔开 不是k:v键值对
s = {1, 2, 3, 4, 5}
如果大括号定义空的数据 那么默认是字典
(七)、元组 tuple
Python中的元组与列表类似,是序列类型的一种,不同之处在于元组的元素一旦创建不能修改。元组使用小括号()表示,元素间用逗号分隔,小括号可以省略
跟列表几乎一致 只不过使用的是小括号
元组一般存储一些只能看不能改的数据
"""
小括号括起来 内存可以存放多个元素 元素与元素之间逗号隔开 元素可以是任意数据类型
"""
t = (1, 2, 3, 4)
元组内数据不能'修改'
l1 = [11, 22, 33]
t1 = (11, 22, 22)
print(l1[1], t1[1])
l1[1] = 996
print(l1)
t1[2] = 117 # 不能修改
print(t1)
运行结果:
(八)、布尔值 bool
只有两个状态
True
False
布尔值是用来描述事物对错 是否可行的 主要用于逻辑判断
True就是可以 可行
False就是不可以
在python中所有的数据在进行逻辑判断的时候都会转成布尔值
- 布尔值默认为False的数据
- 0 None 空字符串 空列表 空字典…
- 其他情况布尔值都是True
针对布尔值的变量名 一般采用is开头
is_right = True
is_delete = False
is_alive = True
用户交互
1.什么是用户交互:
程序等待用户输入一些数据,程序执行完毕反馈信息。
2.如何使用
在python中使用input,input会将用户输入的如何内容存为字符串;
1.获取用户输入
username = input('请输入您的用户名>>>:')
# input获取到的用户输入都会转成字符串类型
2.输出内部数据
print(username)
编写方式
方式1 先写print括号内写需要打印的东西
方式2 先写需要打印的东西之后使用句点符跟print之后tab键即可
括号内还支持一次性打印多个数据 逗号隔开即可
格式化输出
如何格式化输出字符串呢,例如你好XX,你的额度是xx,其中xx的变量,我们无法预知,这个时候就需要格式化输出,和C语言一样,我们可以使用占位符%?,其中?代表不同的字符,例如%s代表字符串,%d代表十进制整数,%f代表浮点数,例如
name = "Potato"
b = 100
print("你好%s,你的额度是%d" % (name,b) )
#name将替换%s的位置,b将替换%d的位置,字符串后的%用来说明是哪些变量要替换前面的占位符,当只有一个变量的时候,可以省略括号
占位符还可以控制输出的格式,例如保留几位小数,填充前导0等,以下是例子
print("小数: %.2f" % 3.14159)# %.2f代表保留两位小数
print("小数: %.2f" % 4.5)# %.2f保留两位小数,不够的位用0补充
print("占位: %3d" % 5)# %3d代表这个数的宽度为3,不够的话用空格在前面补,如果数的宽度大于3,则正常输出
print("前导0: %05d" % 2)# %05d代表这个数的宽度为5,不够的话用0在前面补,如果数的宽度大于5,则正常输出
如果不知道数据类型的话,用%s即转为字符串进行输出会比较稳妥,还有许多种占位符的格式,具体使用时可以搜索,一般常用的就是以上那些。
运算符
Python 中的运算符主要分为算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符共 7 大类,运算符之间也是由优先级的,下面我们就来进行具体介绍。
一、算术运算符
运算符 | 描述 |
---|---|
+ | 两个数相加,或是字符串连接 |
- | 两个数相减 |
* | 两个数相乘,或是返回一个重复若干次的字符串 |
/ | 两个数相除,结果为浮点数(小数) |
// | 两个数相除,结果为向下取整的整数 |
% | 取模,返回两个数相除的余数 |
** | 幂运算,返回乘方结果 |
以上算术运算符的示例和运行结果如下所示:
- 增量赋值
x += 100 <==> x = x + 100
x -= 100 <==> x = x - 100
x *= 100 <==> x = x * 100
x /= 100 <==> x = x / 100
- 链式赋值
x = 100
y = x
z = x
# 简化
x = y = z = 100
- 交叉赋值
m = 10
n = 999
# 让m指向n指向的值 让n指向m指向的值
# m = n
# n = m
# print(m, n) # 999 999
tmp = m
m = n
n = tmp
print(m, n)
# 交叉赋值
m, n = n, m
print(m, n)
- 解压赋值
name_list = ['jason', 'kevin', 'tony', 'jerry']
普通方式取值:
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
# name4 = name_list[3]
解压赋值方式取值:(重要)
# name1, name2, name3, name4 = name_list
# name1, name2 = name_list
# name1, name2, name3, name4, name5 = name_list
"""
1.正常情况下 左右两边的变量名和值个数要相等
2.也可以打破个数限制
"""
l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
a, b, *_ = l1
print(a, b, _) # 11 22 [33, 44, 55, 66, 77, 88, 99]
a, *_, b = l1
print(a, b, _) # 11 99 [22, 33, 44, 55, 66, 77, 88]
"""
单独的下划线作为变量名 意思是为了符合语法 但是指向的值用不到的情况
"""
二、逻辑运算符
运算符 | 描述 |
---|---|
and | 布尔“与”运算符,返回两个变量“与”运算的结果,连接多个条件必须都满足 结果才是True |
or | 布尔“或”运算符,返回两个变量“或”运算的结果,连接多个条件只要有一个满足 结果就是True |
not | 布尔“非”运算符,返回对变量“非”运算的结果,将条件翻转 True变为False False变为True |
a = True
b = False
print('a and b',a and b)
print('a or b',a or b)
print('not(a and b)',not(a and b))
三者混合使用的时候是有优先级的 但是我们不需要记
应该人为的在编写初期就强制规定好顺序
(3>4 and 4>3) or ((1==3 and ‘x’ == ‘x’) or 3 >3)
三、身份运算符
运算符 | 描述 |
---|---|
in | 当在指定的序列中找到值时返回 True,否则返回 False |
not in | 当在指定的序列中没有找到值时返回 True,否则返回 False |
a = 1
b = 8
c = [1, 2, 3, 4, 5]
print('a in c',a in c)
print('b not in c',b not in c)
四、成员运算符
运算符 | 描述 |
---|---|
is | 判断两个数据的内存地址是否一致 ,若引用的是同一个内存地址则返回 True,否则返回 False |
is not | 判断两个标识符是不是引用自不同内存地址,若引用的不是同一个内存地址则返回 True,否则返回 False |
a = 123
b = 456
c = 123456
print('a is b',a is b)
print('a is c',a is c)
d = 123
print('a is d',a is d)
print('a is not c',a is not b)
==:判断两个数据的值是否一致
今日学习时间:
计划学习的时间
1、 上午8:30~12:30
2、 下午2:30~5:30
3、 晚上6:30~9:30
今日学习产出:
1、 技术笔记 1 遍
2、CSDN 技术博客 1 篇
3、 今日学习总结的 record 1 个