你花钱也学不到的Python最重要的东西,有点多,但是写得很详细!

初学者有什么不懂的可以私信我,需要开发工具和安装包,系统学习资料和系统学习框架图的同学,可关注小编头条号,欢迎留言评论和私信小编。【私信方法】文章上方处点击“作者头像”,进入作者首页,在作者主页上方点击“关注”旁边的“发私信”即可。私信内容:学习资料。

有时候,需求将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。

17.1 字典列表

字典alien_0包括一个外星人的决心,但无法存储第二个外星人的信息,更别说屏幕上悉数外星人的信息了。如何办理成群结队的外星人呢?一种方法是创立一个外星人列表,其间每个外星人都是一个字典,包括有关该外星人的各种信息。例如,下面的代码创立一个包括三个外星人的列表:

# -*- coding:utf-8 -*-

alien_0 = {'color':'green','score':5}

alien_1 = {'color':'yellow','score':10}

alien_2 = {'color':'red','score':15}

① aliens = [alien_0,alien_1,alien_2]

for alien in aliens:

print(alien)

你花钱也学不到的Python最重要的东西,有点多,但是写得很详细!_第1张图片

咱们首先创立了3个字典,其间每个字典都表明一个外星人。在①处,咱们将这些字典都存储在一个名叫aliens的列表中。最终,咱们遍历这个列表,并将每个外星人都打印出来:

{'color': 'green', 'score': 5}

{'color': 'yellow', 'score': 10}

{'color': 'red', 'score': 15}

更符合现实的情形是,外星人不止三个,且每个外星人都运用代码主动生成。在下面的示例中,咱们运用range()生成30个外星人:

# -*- coding:utf-8 -*-

# 创立一个用于存储外星人的空列表

aliens = []

# 创立30个绿色的外星人

for alien_number in range (0,30):

new_alien = {'color': 'green', 'score': 5, 'speed': 'slow'}

aliens.append(new_alien)

# 显现前5个外星人

for alien in aliens[0:5]:

print(alien)

print("...")

# 显现创立了多少个外星人

print("总共有{0}个外星人".format(len(aliens)))

在这个示例中,咱们首先创立了一个空列表,用于存储接下来讲创立的所有外星人。紧接着运用了range()回来一系列数字,其仅有用途是让Python重复多少次循环,没执行一次循环,都将创立一个外星人,并将其添加到列表aliens的末尾。最终运用一个切片来打印前5个外星人,并打印列表的长度,以证明确实创立了30个外星人:

{'color': 'green', 'score': 5, 'speed': 'slow'}

{'color': 'green', 'score': 5, 'speed': 'slow'}

{'color': 'green', 'score': 5, 'speed': 'slow'}

{'color': 'green', 'score': 5, 'speed': 'slow'}

{'color': 'green', 'score': 5, 'speed': 'slow'}

...

总共有30个外星人

你花钱也学不到的Python最重要的东西,有点多,但是写得很详细!_第2张图片

初学者有什么不懂的可以私信我,需要开发工具和安装包,系统学习资料和系统学习框架图的同学,可关注小编头条号,欢迎留言评论和私信小编。【私信方法】文章上方处点击“作者头像”,进入作者首页,在作者主页上方点击“关注”旁边的“发私信”即可。私信内容:学习资料。

常常需求在列表中包括大量的字典,而其间每个字典都包括特定对象的很多信息。例如,可以为网站的每个用户创立一个字典,并将这些字典存储在一个名为users的列表中。在这个列表中,所有字典的结构都相同,因而你可以遍历这个列表,并以相同的方法处理其间的每个字典。

17.2 在字典中存储列表

有时候,需求将列表存储在字典中。例如,你如何描述用户点的比萨呢?如果运用列表,只能存储要添加的比萨配料;但如果运用字典,就不仅可在其间包括配料列表,还能包括其他有关比萨的描述。

在下面的示例中,存储了比萨的两方面信息:外皮类型和配料列表。其间配料列表是一个与键'toppings'相关联的值。要拜访这个列表,咱们运用字典名和键'toppings',就像拜访字典的其他值一样。这将回来一个配料列表,而不是单个值:

# -*- coding:utf-8 -*-

# 存储顾客点的比萨的信息

pizza = {

'crust':'加大型',

'toppings':['微辣','榴莲']

}

# 概述所点的比萨

print("你点的是 " + pizza['crust'] + " 比萨,需求添加以下配料:")

for topping in pizza['toppings']:

print(topping)

下面的输出概述了顾客点的比萨:

你点的是 加大型 比萨,需求添加以下配料:

微辣

榴莲

每当需求在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。

你花钱也学不到的Python最重要的东西,有点多,但是写得很详细!_第3张图片

初学者有什么不懂的可以加下我的Python学习交流群:628979297,需要开发工具和安装包,系统学习资料和系统学习框架图的同学,欢迎加入

17.3 在字典中存储字典

可在字典中嵌套字典,但这样做代码可能就开端复杂起来。例如,如果有多个网站用户,每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。在下面的程序中,对于每位用户,咱们都存储了其三项信息:名、姓、居住地;为拜访这些信息,咱们遍历所有的用户名,并拜访与每个用户相关联的信息字典:

# -*- coding:utf-8 -*-

users = {

'小明': {

'姓': '张',

'名': '明',

'居住地': '深圳'

},

'老王': {

'姓': '王',

'名': '三',

'居住地': '北京'

}

}

# 循环遍历字典

① for username, user_info in users.items():

② print("用户名: " + username)

③ full_name = user_info['姓'] + " " + user_info['名']

location = user_info['居住地']

④ print("姓名: " + full_name.title())

print("居住地: " + location.title())

print(" ")

咱们首先定义了一个名为users的字典,其间包括两个键:用户名'小明'和'老王';与每个键相关联的值都是一个字典,其间包括用户的名、姓、居住地。

在①处,咱们遍历字典,让Python依次将每个键存储在变量username中,并依次将于当前键相关联的字典存储在变量user_info中。在主循环内部的②处,咱们将用户名打印出来。

在③处,咱们开端拜访内部的字典。变量是user_info包括用户信息的字典,而该字典包括三个键:'名'、'姓'、'居住地';对于每位用户,咱们都运用这些键来生成整齐的姓名和居住地,然后打印有关用户的扼要信息(见④):

用户名: 小明

姓名: 张 明

居住地: 深圳

用户名: 老王

姓名: 王 三

居住地: 北京

请注意,表明每位用户的字典的结构都相同,尽管Python并没有这样的要求,但这使得嵌套的字典处理起来更简单。倘若表明每位用户的字典都包括不同的键,for循环内部的代码将更复杂。

17.4 实例练习 - 动手试一试

学编程,不练习是不可的,必须多练。

17.4.1 实例1 - 城市

创立一个名为cities的字典,其间将三个城市名用作键;对于每个城市,都创立一个字典,并在其间包括该城市所属国家、人口数量以及有关该城市的描述。在表明每个城市的字典中,应包括country、population和description等键。将每座城市的姓名以及有关它们的信息都打印出来。

在本节中,你将学习如何承受用户的输入,让程序能够对其进行处理。在程序需求一个名字时,你需求提示用户输入该名字。为此,你需求运用函数input()。

18.1 函数 input() 的作业原理

函数input()让程序暂停运转,等候用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你运用。

例如,下面的程序让用户输入一些文本,再将这些文本出现给用户:

# -*- coding:utf-8 -*-

message = input("请输入文本,这些文本将被展示:")

print(message)

函数input()承受一个参数,即要向用户显现的提示或说明,让用户知道该如何做。在这个实例中,Python运转榜首行代码时,用户将看到提示信息,程序等候用户输入,并在用户按回车键后继续运转。输入存在变量message中,接下来的print(message)将输入出现给用户:

请输入文本,这些文本将被展示:Hello Python!

Hello Python!

注意:Sublime Text 不能运转输入程序。你能够运用Sublime 来编写程序,但有必要从终端运转它们。或者,直接运用Python自带的IDLE编辑器,能够直接输入和运转。

18.1.1 编写明晰的程序

每当运用input()时,都应指定明晰而易于明白的提示,让用户民百需求输入什么样的信息。例如,提示用户输入名字:

# -*- coding:utf-8 -*-

message = input("请输入你的名字: ")

print("Hello " + message + " !")

在提示信息后面加一个空格,能够让提示信息和用户的输入信息分隔:

请输入你的名字: Tom

Hello Tom !

有时分,提示信息会超越一行,这种情况下,可将提示信息存储在一个变量中国,在将这个变量传递给input()函数。这样,即便提示超越一行,input()句子也非常明晰。

# -*- coding:utf-8

prompt = "为了更好的为你效劳,我们需求知道你的英文全称."

prompt += " 请在此处输入你的名字的英文全称: "

name = input(prompt)

print(" Hello, " + name + "!")

这个示例演示了一种创建多行字符串的方式。最终的提示跨行显现:

为了更好的为你效劳,我们需求知道你的英文全称.

请在此处输入你的名字的英文全称: laowang

Hello, laowang!

18.1.2 运用input()来获取数字输入

运用函数input()输入时,Python将用户输入解读为字符串:

>>> age = input("请输入你的年纪:")

请输入你的年纪:22

>>> age

'22'

用户输入数字22,但Python输出时回来字符串'22'。运用print句子输出时,并没有问题,但是如果这个时分把变量age作为数字来运用,就会报错:

# -*- coding:utf-8

age = input("请输入你的年纪: ")

# 输出age

print(age)

# 将age作为数字运用

print(age + 1)

能够正常输出age,但第二个print会报错,因为字符串和数字无法相加:

请输入你的年纪: 22

22

Traceback (most recent call last):

File "/Users/cunxi/Desktop/test.py", line 4, in

print(age + 1)

TypeError: must be str, not int

为解决这个问题,能够运用 int() 函数将这个字符换转换成数值:

# -*- coding:utf-8

age = input("请输入你的年纪: ")

# 输出age

print(age)

# 运用int()将age转化为数字

print(int(age) + 1)

输出成果:

请输入你的年纪: 22

22

23

如何在实践程序中运用int()函数呢?请看下面的比如,它判别一个人是否满意坐过山车的身高要求:

# -*- coding:utf-8

height = input("How tall are you,in inches: ")

# 将输入转换为数值

height = int(height)

if height >= 36:

print(" You are tall enough to ride!")

else:

print(" You'll be able to ride when you're a little older.")

运用int()将输入的输入转换为数值,从而能够将其与数字进行比较:

How tall are you,in inches: 37

You are tall enough to ride!

将输入的数值用于计算和比较时,务必运用int()将其转换为数值。

18.1.3 求模运算符

处理数值信息时,求模运算符(%)是一个很有用的东西,它将两个数相除并回来余数,例如,4除以3的余数是1,可这样计算:

>>> 4 % 3

1

>>> 5 % 3

2

>>> 6 % 3

0

求模运算符不会指出一个数是另一个数的多少倍,而只是指出余数是多少。

如果一个数可被另一个数整除,余数就为0,因此求模运算符将回来0。可根据这一点来判别一个数是奇数还是偶数:

# -*- coding:utf-8

number = input("请输入一个数字 ")

number = int(number)

if number % 2 == 0:

print(" 这个数字 " + str(number) + " 是偶数.")

else:

print(" 这个数字 " + str(number) + " 是奇数.")

偶数能被2整除,因此一个数与2 履行求模运算的成果为0,则这个数为偶数,不然就为奇数:

请输入一个数字 5

这个数字 5 是奇数.

18.2 实例操练 - 着手试一试

18.2.1 餐厅订座

编写一个程序,询问用户有多少人用餐。如果超越8人,就打印一条音讯,指出没有空桌;不然指出有空桌。

18.2.2 10的整数倍

让用户输入一个数字,并指出这个数字是否是10的整数倍。

今天的文章给大家带到这里,一直在坚持给大家更新文章,如果对你有所帮助,可以多多转发和关注,初学者有什么不懂的可以加下Python学习群:628979297

你可能感兴趣的:(你花钱也学不到的Python最重要的东西,有点多,但是写得很详细!)