字典是一系列键值对
访问值,添加键值对,修改值,创建空字典(用户提供数据或能自动生成大量键值对)
删除键值对:del 字典名[键名]
由类似对象组成的字典:常用的存储格式如下
rivers={'nile':'egypt', 'yangtze':'china', 'amazon':'brazil', #在最后一个键值后面也加上逗号,以便后续添加键值 }
使用方法get()来访问值:
.get(键,不存在时的返回值)
若没有指定第二个参数且该键不存在,则返回None
print(alien_0.get('color','No')) #若无键则返回指定信息2.遍历字典 (1).遍历所有键值对
用两个变量存储键和值,再利用方法.item()返回一个键值对列表
for key,value in alien_0.items(): #~.item():返回一个键值对列表 print(f"Key:{key}") print(f"Value:{value}n") #若直接遍历字典,则会默认遍历所有键,效果同~.keys()(2).遍历所有键
用一个变量存储键,再利用方法.key()返回一个键列表
若单纯遍历字典,会默认遍历所有键,其效果与使用方法key()一样,但我们为了便于理解,应显式地使用方法key()
(3).按特定顺序遍历所有键可以对字典方法key()的结果调用函数sorted()
(4).遍历字典的所有值用一个变量存储值,再利用方法.value()返回一个值列表
这样没有考虑是否重复,为剔除重复项,可使用集合
3.集合 (1).集合的基本概念set()函数可找出列表中独一无二的元素,并创建一个集合
集合支持:
①成员 *** 作符号(即in) ②for循环 ③len()获取集合长度 ④.clear()清空集合
而不能使用:索引、切片、连接、重复
(2).空集合的定义方式注意与空字典定义的区别
s = set([]) #空集合定义 sl = {} #对比:空字典定义(3).列表去重方法
将列表先转换为集合,利用集合去重的特性去重,再转换为列表
li = [1,2,3,1,1,2,3] print(list(set(li))) #列表去重:将其转化为集合类型去重,然后再转为列表类型输出(4).增删元素
s = {6,7,8,9} s.add(1) #增加一个元素 s.update({5,3,2}) #增加几个元素 s.remove(1) #删除集合中指定的元素,若元素不存在则报错 s.discard(10) #删除集合中指定的元素,若元素不存在则不做任何事 s.pop() #随机删除集合中的某个元素,并返回删除的元素(5).交集并集差集 4.字典的嵌套
(1).字典列表
即列表的元素是字典,便于使用循环,切片或if语句
(2).在字典中存储列表
即字典键的值是一个列表
(3).在字典中存储字典
即字典键的值是一个字典,下面为一个例子
注意:字典中存储字典时,读取的时候考虑读取方式
cities={ 'sh':{'country':'china','rank':'NO1'}, 'ny':{'country':'america','rank':'NO2'}, 'bj':{'country':'china','rank':'NO3'}, } for city,info in cities.items(): print(f"{city.upper()} is in {info['country'].title()}, and it ranks {info['rank']}.")第七章 用户输入和while循环 1.获取用户输入 (1).函数input()
用户输入,可以显示提示(prompt)
语法:a = input("提示内容")
+=运算符可以在字符串末尾再加一个字符串
message=input("Tell me sth:") #括号内为提示内容prompt print(message) prompt="Please tell me ..." prompt+="nWhat's your name? " #新运算符+= name=input(prompt) print(name.title())(2).使用int()来获取数值输入
函数input()默认返回的字符串,可使用int()转换为数值输入
2.while循环 (1).基本语法格式注意while语句这一行最后要有冒号(和for语句和if语句一样)
可以定义一个标志(flag),在循环节中指定触发条件,用以判断while循环是否继续
定义某个变量 while + 条件测试 : 循环代码块(2).实现命令行提示符
①break:跳出整个循环,不会再执行循环后续的内容
②continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环
③exit():结束程序的运行
current_number=0 while current_number < 10: current_number += 1 if current_number % 2 == 0: continue #跳过偶数 print(current_number)(3).使用while循环处理列表和字典
for循环是一种遍历列表的有效方式,但不应在for循环中修改列表,否则将难以跟踪期中的元素
通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供后续查看和显示
可用以在列表之间移动元素,删除为特定值的所有列表元素(使用remove),使用用户输入来填充字典(利用flag)
第八章 函数 1.基本语法格式注意点:def 冒号 文档字符串 缩进 形参和实参
可以设定返回值,其数据类型可以是字符串,字典
可以通过函数修改列表
如果不想让函数修改列表,可以向函数传递列表的副本(即切片[:]),这样就不会影响原列表
一般不应传递副本,因为创建副本所花的时间和内存会降低效率
def favorite_book(book): """显示最喜欢的书名""" #文档字符串(注释) print(f"My favorite book is {book.title()}") return xxx #部分函数有返回值 favorite_book('love')2.传递实参的方式 (1).位置实参
即按照默认对应的顺序
(2).关键字实参在调用函数时,明确指出各个实参对应的形参
describe_pet(pet_name='harry',pet_type='hamster') describe_pet(pet_type='hamster',pet_name='harry') #两者是等价的,无所谓顺序(3).默认值
可以在形参列表中指定默认值,可以简化函数调用并指出函数典型用法
默认值必须放在形参列表的最后;如果想要放在中间,后面应加上星号隔开
将默认值设为空字符串,可以让实参变成”可选的“
3.传递任意数量的实参 (1).结合使用位置实参和任意数量实参在形参名前加一个星号,eg:def pizza(*toppings):
星号表示python会创建一个名为形参名的新元组,并将所有值封装到这个元组中,然后再循环执行函数
如果要接受不同类型的实参,那么星号形参必须放在最后,python会先匹配位置实参和关键字实参,再收集余下的实参到星号形参中 eg:def pizza(size,*toppings):
通用形参名*args,表示收集任意数量的位置实参
(2).使用任意数量的关键字实参能接受任意数量的键值对
两个星号表示让python创建一个名为user_info的空字典,并将收到的键值对放到这个字典里
通用形参名**kwargs,表示收集任意数量的关键字实参
def build_profile(first,last,**user_info): """创建一个字典,其中包含我们知道的有关用户的一切""" user_info['first_name'] = first user_info['last_name'] = last return user_info user_profile = build_profile('albert','einstein', location='princeton', #注意这里的location没有加引号 field='physics') print(user_profile)4.将函数存储在模块中
将函数存储在称为模块的独立文件中,再将模块导入到主程序中,模块是扩展名为.py的文件
import语句允许在当前运行的程序中使用模块中的代码
(1).导入整个模块直接import+文件名 eg:import pizza
要调用被导入模块的函数,可指定模块名称和函数名,并用句点分隔 eg:pizza.make_pizza()
(2).导入特定的函数语法:from module_name import function_0, function_1, function_2
此时调用函数无须加句点,因为在import语句中显式地导入了函数
(3).使用as给函数指定别名eg:from pizza import make_pizza as mp
此时调用函数只需mp()
(4).使用as给了模块指定别名eg:import pizza as p
此时调用函数只需p.make_pizza()
(5).导入模块中的所有函数使用星号(*)运算符可以让python导入模块中的所有函数
eg:from pizza import *
5.函数编写规范①给函数和模块命名时,应只使用小写字母和下划线
②在文档字符串中应当简要阐释函数功能
③给形参指定默认值时,和调用函数时的关键字实参,等号两边不要有空格
④代码行的长度不要超过79,可在函数定义中输入左括号后回车,并按两次Tab,从而将形参列表和只缩进一层的函数体区分开来
⑤编写多个函数时,每个函数之间空两行,便于区分
⑥所有import语句都应放在文件开头,除非在文件开头使用注释来描述整个程序
今日随手记a=car==‘bmw' 优先执行条件测试,再把True或False赋给a
Shift+Alt+E 可以直接运行选中的一段代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)