Python基础语法学习-Day3

本文介绍了Python的基础语法,包括字典的使用,如查找、修改、添加和删除元素,以及集合的创建和操作,如添加、移除元素。还详细讲解了判断语句和循环语句,并简要提到了三目表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、字典

1、字典介绍
  • 字典的每个元素由两部分组成,键:值,键是唯一的,不能重复,键、值的类型可以是任意类型。例如:info = {‘name’: ‘张三’, ‘年纪’: ‘23’,},info就是一个字典,存储张三的信息。
  • 字典和列表一样,能够存储多个数据。
  • 列表中找某个元素时,是根据下标进行的,字典中是根据键来查找,也就是用冒号前面的值。
2、字典根据键查找

根据键查找时,用方括号将键括起来,如果有这个键就返回值的结果,如果没有则会报错

info = {'name':'张三','sex':'男','address':'中国'}
print(info['name'])
print(info['sex'])
print(info['age'])

结果:
张三
男
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-1-21ac5098b230> in <module>
      2 print(info['name'])
      3 print(info['sex'])
----> 4 print(info['age'])

KeyError: 'age'

为了防止报错,可以使用get方法,当没有找到查询的键时,可以设置一个参数,将返回该参数

info = {'name':'张三','sex':'男','address':'中国'}
print(info['name'])
print(info['sex'])
print(info.get('age','没有该键'))


结果:
张三
男
没有该键
3、字典常用方法
1)修改元素

字典的每个元素中的数据是可以修改的,只要通过key找到对应的值,即可修改。

info = {'name':'张三','sex':'男','address':'中国'}
info['address'] = '中国 上海'
print(info)

结果:
{'name': '张三', 'sex': '男', 'address': '中国 上海'}
2)添加元素

在修改字典时,如果该值不存在,则会新增键值对。

info = {'name':'张三','sex':'男','address':'中国'}
info['qq'] = '123456789'
print(info)

结果:

{'name': '张三', 'sex': '男', 'address': '中国', 'qq': '123456789'}
3)删除元素

可以利用del方法来删除指定的键,用clear方法来清空整个字典。

info = {'name':'张三','sex':'男','address':'中国'}
del info['address']
print(info)
info.clear()
print(info)

结果:
{'name': '张三', 'sex': '男'}
{}
4)len()

可以利用len来返回字典中键值对的个数

info = {'name':'张三','sex':'男','address':'中国'}
print(len(info))

结果:
3
5)keys()

返回一个包含字典所有KEY的列表

info = {'name':'张三','sex':'男','address':'中国'}
info.keys()

结果:
dict_keys(['name', 'sex', 'address'])
6)values()

返回一个包含字典所有value的列表

info = {'name':'张三','sex':'男','address':'中国'}
info.values()

结果:
dict_values(['张三', '男', '中国'])
7)items()

返回一个包含字典所有(key,value)元组的列表

info = {'name':'张三','sex':'男','address':'中国'}
info.items()

结果:
dict_items([('name', '张三'), ('sex', '男'), ('address', '中国')])

二、集合

1、集合创建

集合,是一个无序的数据集,用{}括起来,各元素用逗号分隔,集合的元素不重复,创建必须用set来进行,直接赋值{}是错误的,{}会默认为字典。也可以用set来把其他数据类型转换为集合类型,比如将字符串、列表、元组等类型转换为集合类型。

a = [1,2,3,4,'a','ddd','bbb']
b = 'adijgeidj'
c = ('er','world','hello',44)
d = set(a)
e = set(b)
f = set(c)
print(d)
print(e)
print(f)


结果:

{1, 2, 3, 4, 'bbb', 'ddd', 'a'}
{'i', 'd', 'j', 'g', 'e', 'a'}
{'world', 44, 'hello', 'er'}

可以看出,在将字符串类型转换为集合类型时,字符串的每个元素会单独转换为集合的元素,而不是把一个字符串整体变为一个集合的元素。

2、集合的方法
1)添加元素

用add将元素添加到集合中,如果元素已经存在,则不进行操作。

a = {1,2,3,4,'a','ddd','bbb'}
a.add('ccc')
print(a)

结果:
{1, 2, 3, 4, 'ccc', 'bbb', 'ddd', 'a'}

add方法只能添加一个元素,update方法可以是多个元素,中间用逗号隔开,也可以将列表、元组、字典等加入集合。

a = {1,2,3,4,'a','ddd','bbb'}
b = [1,2,3,4,'a','ddd','bbb']
c = ('er','world','hello',44)
a.update('gg','111','333')#注意不能添加int类型
print(a)
a.update(b)
print(a)
a.update(c)
print(a)

结果:

用update添加字符串时,同样是把字符串每个元素都添加进去,重复的不做修改。
{'3', 1, 2, 3, 4, 'bbb', 'g', 'ddd', '1', 'a'}
{'3', 1, 2, 3, 4, 'bbb', 'g', 'ddd', '1', 'a'}
{'3', 1, 2, 3, 4, 'hello', 'er', 'bbb', 'g', 44, 'ddd', 'world', '1', 'a'}
2)移除元素

用remove将集合中的元素移除,如果元素不存在,会报错。且每次只能移除一个元素。

a = {1,2,3,4,'a','ddd','bbb'}
a.remove('a','ccc')
print(a)

结果:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-c6ff95aad4bb> in <module>
      1 a = {1,2,3,4,'a','ddd','bbb'}
----> 2 a.remove('a','ccc')
      3 print(a)

TypeError: remove() takes exactly one argument (2 given)


a = {1,2,3,4,'a','ddd','bbb'}
a.remove('a')
print(a)

结果:
{1, 2, 3, 4, 'bbb', 'ddd'}

还可以用discard方法移除,如果元素不在集合中不会报错,也是只能操作一个元素。

a = {1,2,3,4,'a','ddd','bbb'}
a.discard(1)
print(a)
a.discard(5)
print(a)

结果:
{2, 3, 4, 'bbb', 'ddd', 'a'}
{2, 3, 4, 'bbb', 'ddd', 'a'}

也可以用pop来随机的删除一个元素,注意,在交互模式下是删除第一个元素。

a = {1,2,3,4,'a','ddd','bbb'}
b = a.pop()
print(b)
print(a)

结果:
1
{2, 3, 4, 'bbb', 'ddd', 'a'}
3)计算集合元素个数

同列表、字符串、字典一样,集合也可以用len来计算集合的长度。

a = {1,2,3,4,'a','ddd','bbb'}
b = len(a)
print(b)

结果:
7

从这个可以看出,用len时与上述几个方法的不同,原因是len是一个函数,而不是集合自带的方法,所以在调用时有区别。

4)判断元素是否在集合中

同其他数据类型一样,集合也可以用in 或者 not in来判断元素是否在集合中。

a = {1,2,3,4,'a','ddd','bbb'}

b = 3 in a
print(b)
d = 3 not in a
print(d)

结果:
True
False
5)集合中一些内置方法
方法描述
add()为集合添加元素
clear()移除集合元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()删除集合中的元素,该元素在指定的集合中不存在
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回True,负责返回False
issubset()判断指定集合是否为该方法参数集合的子集
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除集合的元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同元素插入到当前集合中
union()返回两个集合的并集
update()给集合添加元素

三、判断与循环语句

1、判断语句
  • 单条件判断语句,由if-else组成,满足if语句的则执行if语句,不满足if语句则执行else。且else后不跟判断条件,相当于if条件的补集,if不满足不用再做判断,直接执行else。
  • 多条件判断语句,由if-elif-else,其中可以有else,也可以没有,elif可以是多个,语句判断时,由上至下依次判断,直到满足条件时终止。
  • if嵌套,顾名思义,跟列表嵌套列表一个道理,if语句里边包含另外一个if语句,则称为if嵌套,在语句执行时依然是从上至下,只是在遇到嵌套的if时,就去执行嵌套的if,嵌套的if执行完成后,返回上层if继续执行(注意是继续执行下边的语句,而不是从头执行外层的if)。
  • if不止能跟if嵌套,还可以结合循环来嵌套,可以跟while循环、for循环等来搭配使用,同时while、for循环中也可再继续嵌套if判断。执行时的思路一样,由上至下,碰到嵌套语句时则执行嵌套语句,一层一层往里执行,最深层的执行完后返回上一层往下依次执行。

示例:

单条件判断

a = [1,2,3]
if type(a) is set:
	print(a)
else:
	print(set(a))

结果:
{1, 2, 3}

多条件判断

a = [1,2,3]
if len(a)>5:
	print(a)
elif len(a)>4:
    print(a)
else:
	print(set(a))

结果:
{1, 2, 3}

a = [1,2,3,4,5,6]
if len(a)>5:
	print(a)
elif len(a)>4:
    print(a)
else:
	print(set(a))

结果:

[1, 2, 3, 4, 5, 6]

if嵌套

che_piao = 1 #1代表有,0代表没有
dao_len = 5 #刀子长度,单位厘米

if che_piao == 1:
    print('可以进站了')
    if dao_len < 10:
        print('可以过安检')
    else:
        print('没有通过安检')
        print('不能乘车')
else:
    print('没有票不能进站')

结果:

可以进站了
可以过安检

2、循环语句
  • for循环语句,也称为遍历,比如可以将一个列表、字典、集合中的元素挨个打印,直到遍历完完成循环。遍历列表以及跟range()函数搭配是经常使用的。
  • while循环,while后跟判别语句,在满足条件后一直执行循环内的语句,可以搭配continue与break来跳出循环。
  • while嵌套,在一个while语句中嵌套一个循环语句,可以说while,也可以是for,还可以嵌套if语句,语句执行同if嵌套一样,从上至下依次执行,碰到嵌套语句则执行嵌套语句的内容。
  • for嵌套,同while嵌套一样。
  • break,在循环时,碰到break语句,则跳出整个循环。且只对最近的一层循环起作用。break只能用在循环中,除此之外不能单独使用。
  • continue,同break的不同之处是,break结束整个循环,而continue结束该次循环,紧接着执行下次循环。其他性能跟break一样。
示例:

while循环:

i = 0
while i<5:
    print('当前是第%d次循环'%(i+1))
    print('i=%d'%i)
    i+=1

结果:
当前是第1次循环
i=0
当前是第2次循环
i=1
当前是第3次循环
i=2
当前是第4次循环
i=3
当前是第5次循环
i=4

for循环:

a = {1,2,3,4,'a','ddd','bbb'}
for i in a:
    print(i)

结果:

1
2
3
4
bbb
ddd
a


循环嵌套:

i = 1
while i<=5:
    j = 1
    while j<=i:
        print('*',end='')
        j+=1
    print("\n")
    i+=1


结果:
*

**

***

****

*****

四、三目表达式

三目表达式就是利用推导式的特性,结合if-else语句来简化的。

简单示例:

a = 10
b = 13
h = ''

h = a -b if a>b else a+b
print(h)

结果:
23


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值