导图社区 python基础学习和实战操作
python基础学习和实战操作的思维导图,包含一、基础知识:1、变量和数据类型、2、列表的运算、3、if语句、4、字典、5、用户输入和while循环等。
编辑于2021-10-25 13:40:20python总结
一、基础知识
1、变量和数据类型
字符串
字符串 字 就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号
使用方法修改字符串的大小写
#title() 以首字母大写的方式显示每个单词 name = "ada lovelace" print(name.title()) #全部大写或小写 name = "Ada Lovelace" print(name.upper()) print(name.lower()) #存储数据时,方法lower() 很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为 最合适的大小写方式。
合并(拼接)字符串
Python使用加号(+ )来合并字符串。使用+ 来合并first_name 、空格和last_name ,以得到完整的姓名。这种合并字符串的方法称为拼接拼 。通过拼接,可使用存储在变量中的信息来创建完整的消息。 first_name = "ada" last_name = "lovelace" full_name = first_name + " " + last_name print("Hello, " + full_name.title() + "!")
使用制表符或换行符来添加空白
在编程中,空白空 泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,以使其更易读。 要在字符串中添加制表符,可使用字符组合\t print("\tPython") 要在字符串中添加换行符,可使用字符组合\n print("Languages:\nPython\nC\nJavaScript") 同一个字符串中同时包含制表符和换行符 print("Languages:\n\tPython\n\tC\n\tJavaScript")
删除空白
空白很重要,因为你经常需要比较两个字符串是否相同。例如,一个重要的示例是,在用户登录网站时检查其用户名。但在一些简单得多的情形下,额外的空格也可能令人迷 惑。所幸在Python中,删除用户输入的数据中的多余的空白易如反掌。 Python能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法rstrip() favorite_language = 'python ' print(favorite_language) favorite_language = favorite_language.rstrip() print(favorite_language) 剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip() 和strip() favorite_language = ' python ' print(favorite_language) favorite_language=favorite_language.rstrip() print(favorite_language) favorite_language=favorite_language.lstrip() print(favorite_language) favorite_language=favorite_language.strip() print(favorite_language)
使用字符串时避免语法错误
语法错误是一种时不时会遇到的错误。程序中包含非法的Python代码时,就会导致语法错误。例如,在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会 导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。 错误案例: message = 'One of Python's strengths is its diverse community.' print(message)
数字
整数
Python中,可对整数执行加(+ )减(- )乘(* )除(/ )运算 支持运算次序,因此你可在同一个表达式中使用多种运算。你还可以使用括号来修改运算次序,
浮点数
Python将带小数点的数字都称为浮点数 浮 。大多数编程语言都使用了这个术语,它指出了这样一个事实:小数点可出现在数字的任何位置。每种编程语言都须细心设计,以妥善地 处理浮点数,确保不管小数点出现在什么位置,数字的行为都是正常的。 需要注意的是,结果包含的小数位数可能是不确定的: 
使用函数 使 str() 避免类型错误
错误案例(类型错误) age = 23 message = "Happy " + age + "rd Birthday!" print(message) 修改 age = 23 message = "Happy " + str(age) + "rd Birthday!" print(message)
注释
# 注释有#,""",''' #向大家问好 Python解释器将忽略第1行,只执行第2行。 print("Hello Python people!")
Python之禅
编程语言Perl曾在互联网领域长期占据着统治地位,早期的大多数交互式网站使用的都是Perl脚本。彼时,“解决问题的办法有多个”被Perl社区奉为座右铭。这种理念一度深受大家 的喜爱,因为这种语言固有的灵活性使得大多数问题都有很多不同的解决之道。 在开发项目期间,这种灵活性是可以接受的,但大家最终认识到,过于强调灵活性会导致大型项目难以维护:要通过研究代码搞清楚当时解决复杂问题的人是怎么想的,既困难又麻烦,还会耗费大量的时间。 经验丰富的程序员倡导尽可能避繁就简。Python社区的理念都包含在TimPeters撰写的“Python之禅”中。要获悉这些有关编写优秀Python代码的指导原则,只需在解释器中执行命 令import this 。这里不打算赘述整个“Python之禅”,而只与大家分享其中的几条原则,让你明白为何它们对Python新手来说至关重要。
2、列表的运算
列表认识
列表 由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有 任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters 、digits 或names )是个不错的主意。 在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。
访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。 bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0]) #使用方法title() 让元素'trek' 的格式更整洁: bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0].title())
索引从 索 0而不是 而 1开始开
在Python中,第一个列表元素的索引为0,而不是1。在大多数编程语言中都是如此,这与列表操作的底层实现相关。如果结果出乎意料,请看看你是否犯了简单的差一错误。 第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。例如,要访问第四个列表元素,可使用索引3。 Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 ,可让Python返回最后一个列表元素:
使用列表中的各个值
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] message = "My first bicycle was a " + bicycles[0].title() + "." print(message)
增删改查
你创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。例如,你创建一个游戏,要求玩家射杀从天而降的外星人;为此,可在开始时将一些外 星人存储在列表中,然后每当有外星人被射杀时,都将其从列表中删除,而每次有新的外星人出现在屏幕上时,都将其添加到列表中。在整个游戏运行期间,外星人列表的长度 将不断变化。
修改列表元素
motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles[0] = 'ducati' print(motorcycles)
添加列表元素
motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles.append('ducati') print(motorcycles) #创建一个空列表,再使用一系列的append() 语句添加元素。 lists = [] lists.append('香蕉') lists.append('橘子') lists.append('桃子') print(lists)
插入列表元素
motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles.insert(-1,'插入元素') #使用方法insert() 可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。 print(motorcycles)
删除列表元素
#①使用使 del 语句删除元素 motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) del motorcycles[1] print(motorcycles) #②使用方法 使 pop() 删除元素 #方法pop() 可删除列表末尾的元素,并让你能够接着使用它。术语弹出弹 (pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。 motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) popped_motorcycle = motorcycles.pop() print(motorcycles) print(popped_motorcycle) #③弹出列表中任何位置处的元素 #使用pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。 motorcycles = ['honda', 'yamaha', 'suzuki'] first_owned = motorcycles.pop(0) print('The first motorcycle I owned was a ' + first_owned.title() + '.') #④根据值删除元素 #有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove() 。 motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] print(motorcycles) motorcycles.remove('ducati') print(motorcycles)
组织列表
列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信 息。有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用。
方法 使 sort() 对列表进行永久性排序
#汽车按字母顺序排列 cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort() print(cars) #与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort(reverse=True) print(cars)
使用函数 使 sorted() 对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted() 。函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。 cars = ['bmw', 'audi', 'toyota', 'subaru'] print("Here is the original list:") print(cars) print("\nHere is the sorted list:") print(sorted(cars)) print("\nHere is the original list again:") print(cars) #调用函数sorted() 后,列表元素的排列顺序并没有变
倒着打印列表
#要反转列表元素的排列顺序,可使用方法reverse(),方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse() 即可。 cars = ['①香蕉', '②水果', '③桃子', '④梨子'] print(cars) cars.reverse() print(cars)
确定列表长度
使用函数len() 可快速获悉列表的长度。 shuiguo = ['①香蕉', '②水果', '③桃子', '④梨子'] print(len(shuiguo))
使用列表时避免索引错误
刚开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取第四个元素: motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles[3]) 将会导致索引错误: Traceback (most recent call last): File "motorcycles.py", line 3, in <module> print(motorcycles[3]) IndexError: list index out of range
操作列表
列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信 息。有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用。
遍历整个列表
#for 循环 水果 = ['梨子', '橘子', '桃子', '杠子'] for i in 水果: print(i)
避免缩进错误
创建数值列表
#①生成数字 #Python函数range() 让你能够轻松地生成一系列的数字。例如,可以像下面这样使用函数range() 来打印一系列的数字: #下述代码好像应该打印数字1~5,但实际上它不会打印数字5: #range() 只是打印数字1~4,这是你在编程语言中经常看到的差一行为的结果。函数range() 让Python从你指定的第一个值开始数,并在到达你指定的第二个值 后停止,因此输出不包含第二个值(这里为5)。 for value in range(1,5): print(value) #②使 range() 创建数字列表 numbers = list(range(1,6)) print(numbers) #③使 range() 创建数字列表,制定步长,如下面range中的3 even_numbers = list(range(1,11,3)) print(even_numbers) #④使用函数range() 几乎能够创建任何需要的数字集,例如,如何创建一个列表,其中包含前10个整数(即1~10)的平方呢?在Python中,两个星号(** )表示乘方运算。下面的代码演示了如何将前10个整数的平方加入到一个列表中: squares = [] for value in range(1,11): square = value**2 squares.append(square) print(squares) #⑤对数字列表执行简单的统计计算 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(max(list)) print(min(list)) print(sum(list))
使用列表的一部分
列表切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样,Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需 要指定索引0~3,这将输出分别为0 、1 和2 的元素。 players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[0:3]) #从第一个元素到第三个元素 print(players[0:]) #从第一个元素到最后一个元素 print(players[1:]) #从第2个元素到最后一个元素 print(players[:]) #所有元素 #遍历切片 for player in players[:3]: print(player.title())
列表复制
#要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:] )。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个 列表。 #案例1 my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods[:] print("My favorite foods are:") print(my_foods) print("\nMy friend's favorite foods are:") print(friend_foods) #案例2 my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods[:] my_foods.append('cannoli') friend_foods.append('ice cream') print("My favorite foods are:") print(my_foods) print("\nMy friend's favorite foods are:") print(friend_foods)
元组
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修 改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的 不 ,而不可变的列表被称为元组
定义元组
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。 例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的: dimensions = (200, 50) print(dimensions[0]) print(dimensions[1]) #尝试修改元组dimensions 中的一个元素 dimensions = (200, 50) dimensions[0] = 250 print(dimensions[0]) 会报错TypeError: 'tuple' object does not support item assignment 由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值 代码试图修改矩形的尺寸时,Python报告错误,这很好,因为这正是我们希望的。
遍历元组中的所有值
#像列表一样,也可以使用for 循环来遍历元组中的所有值: dimensions = (200,2,22,2,20, 50) for dimension in dimensions: print(dimension)
修改元组变量
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组: dimensions = (200, 50) print("Original dimensions:") for dimension in dimensions: print(dimension) dimensions = (400, 100) print("\nModified dimensions:") for dimension in dimensions: #新元组存储到变量dimensions print(dimension)
设置代码格式
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修 改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的 不 ,而不可变的列表被称为元组
缩进
每级缩进都使用四个空格,选中代码,按TAB键即可。
行长
Python程序员都建议每行不超过80字符。 最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还 要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件 的完整行。PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。
空行
要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用。 空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。
其他
访问https://python.org/dev/peps/pep-0008/ ,阅读PEP 8格式设置指南。
3、if语句
简单例子
cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())
条件测试
每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试 条 。Python根据条件测试的值为True 还是False 来决定是否执行if 语句中的代码。如果 条件测试的值为True ,Python就执行紧跟在if 语句后面的代码;如果为False ,Python就忽略这些代码。 #①检查是否相等 car = 'bmw' #bmw的值赋值给car if car == 'bmw': #使用两个等号(== )检查car 的值是否为'bmw' 。 print("正确") else: print("错误") #②Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等 car = 'BMW' if car == 'bmw': print("正确") else: print("错误") #③如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较: car = 'BMW' if car.lower() == 'bmw': print("正确") else: print("错误") #④检查是否不相等 requested_topping = 'mushrooms' if requested_topping != 'anchovies': print("Hold the anchovies!") #⑤比较数字 age = 18 age == 18 #⑥检查多个条件,and or age = 18 if age <=25 and age>=16: print("正确") else: print("错误") #⑦检查特定值是否包含在列表中 requested_toppings = ['mushrooms', 'onions', 'pineapple'] if 'mushrooms' in requested_toppings: print("正确") else: print("错误") #⑧检查特定值是否不包含在列表中 requested_toppings = ['mushrooms', 'onions', 'pineapple'] if 'mushro1oms' not in requested_toppings: print("正确") else: print("错误")
if语句
①简单if语句 age = 19 if age >= 18: print("You are old enough to vote!") print("Have you registered to vote yet?") ②if-else 语句 age = 19 if age >= 18: print("You are old enough to vote!") else: print("Have you registered to vote yet?") ③if-elif-else 结构结 age = 12 if age < 4: print("Your admission cost is $0.") elif age < 18: print("Your admission cost is $5.") else: print("Your admission cost is $10.")
if语句处理列表
①遍历列表,检查特殊元素 requested_toppings = ['mushrooms', 'green peppers', 'extra cheese'] for requested_topping in requested_toppings: if requested_topping == 'green peppers': print("Sorry, we are out of green peppers right now.") else: print("Adding " + requested_topping + ".") print("\nFinished making your pizza!") ②确定列表不是空的 requested_toppings = [] if requested_toppings: for requested_topping in requested_toppings: print("Adding " + requested_topping + ".") print("\nFinished making your pizza!") else: print("Are you sure you want a plain pizza?") ③使用多个列表 available_toppings = ['mushrooms', 'olives', 'green peppers', 'pepperoni', 'pineapple', 'extra cheese'] requested_toppings = ['mushrooms', 'french fries', 'extra cheese'] for requested_topping in requested_toppings: if requested_topping in available_toppings: print("Adding " + requested_topping + ".") else: print("Sorry, we don't have " + requested_topping + ".") print("\nFinished making your pizza!")
4、字典
在本章中,你将学习能够将相关信息关联起来的Python字典。你将学习如何访问和修改字典中的信息。鉴于字典可存储的信息量几乎不受限制,因此我们会演示如何遍 历字典中的数据。另外,你还将学习存储字典的列表、存储列表的字典和存储字典的字典。 理解字典后,你就能够更准确地为各种真实物体建模。你可以创建一个表示人的字典,然后想在其中存储多少信息就存储多少信息:姓名、年龄、地址、职业以及要 描述的任何方面。你还能够存储任意两种相关的信息,如一系列单词及其含义,一系列人名及其喜欢的数字,以及一系列山脉及其海拔等。
简单字典
alien_0 = {'color': 'green', 'points': 5} print(alien_0['color']) print(alien_0['points'])
使用字典
在Python中,字典字 是一系列键—值对值 。 每个键 都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。 事实上,可将 任何Python对象用作字典中的值。 在Python中,字典用放在花括号{} 中的一系列键—值对表示,如前面的示例所示: alien_0 = {'color': 'green', 'points': 5} 键—值 对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔。在字典中,你想存储多少个键—值对都可以。 最简单的字典只有一个键—值对,如下述修改后的字典alien_0 所示: alien_0 = {'color': 'green'}
访问字典中的值
alien_0 = {'color': 'green'} print(alien_0['color']) alien_0 = {'color': 'green', 'points': 5} new_points = alien_0['points'] print("You just earned " + str(new_points) + " points!")
添加键-值对
alien_0 = {'color': 'green', 'points': 5} print(alien_0) alien_0['x_position'] = 0 alien_0['y_position'] = 25 print(alien_0)
创建空字典
alien_0 = {} alien_0['color'] = 'green' alien_0['points'] = 5 print(alien_0)
修改字典中的值
alien_0 = {'color': 'green'} print("The alien is " + alien_0['color'] + ".") alien_0['color'] = 'yellow' print("The alien is now " + alien_0['color'] + ".")
删除键-值对
alien_0 = {'color': 'green', 'points': 5} print(alien_0) del alien_0['points'] print(alien_0)
由类似对象组成的字典
前面的示例中,字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以使用字典来存储众多对象的同一种信息。 例如,假设你要调查很多人,询问他们最喜 欢的编程语言,可使用一个字典来存储这种简单调查的结果,如下所示: favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } print("Sarah's favorite language is " + favorite_languages['sarah'].title() + ".")
遍历字典
1、遍历所有的键—值对值 user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', } for key, value in user_0.items(): print("\nKey: " + key) print("Value: " + value) 2、遍历字典中的所有键 favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } for name in favorite_languages.keys(): print(name.title()) 3、按顺序遍历字典中的所有键 favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } for name in sorted(favorite_languages.keys()): print(name.title() + ", thank you for taking the poll.") 4、遍历字典中的所有值 favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } print("The following languages have been mentioned:") for language in favorite_languages.values(): print(language.title())
嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套嵌 。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。正如下面的示例 将演示的,嵌套是一项强大的功能。 1、字典列表 字典alien_0 包含一个外星人的各种信息,但无法存储第二个外星人的信息,更别说屏幕上全部外星人的信息了。如何管理成群结队的外星人呢?一种办法是创建一个外星人列 表,其中每个外星人都是一个字典,包含有关该外星人的各种信息。 例1,下面的代码创建一个包含三个外星人的列表: alien_1 = {'color': 'yellow', 'points': 10} alien_2 = {'color': 'red', 'points': 15} aliens = [alien_0, alien_1, alien_2] for alien in aliens: print(alien) 例2,使用range() 生成了30个外星人 # 创建一个用于存储外星人的空列表 aliens = [] # 创建30个绿色的外星人 for alien_number in range(30): new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_alien) # 显示前五个外星人 for alien in aliens[:5]: print(alien) print("...") # 显示创建了多少个外星人 print("Total number of aliens: " + str(len(aliens))) 2、在字典中存储列表 favorite_languages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go'], 'phil': ['python', 'haskell'], } for name, languages in favorite_languages.items(): print("\n" + name.title() + "'s favorite languages are:") for language in languages: print("\t" + language.title()) 3、在字典中存储字典 users = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', }, 'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', }, } for username, user_info in users.items(): print("\nUsername: " + username) full_name = user_info['first'] + " " + user_info['last'] location = user_info['location'] print("\tFull name: " + full_name.title()) print("\tLocation: " + location.title())
5、用户输入和while循环
6、函数
7、类
8、文件和异常
9、测试代码
二、项目运行