美文网首页Python web开发vPython3
你花钱也学不到的Python最重要的东西,有点多,但是写得很详细

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

作者: Python程序猿 | 来源:发表于2018-01-25 10:54 被阅读3次

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

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

    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)

    咱们首先创立了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个外星人

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

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

    17.2 在字典中存储列表

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

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

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

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

    pizza = {

    'crust':'加大型',

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

    }

    # 概述所点的比萨

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

    for topping in pizza['toppings']:

    print(topping)

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

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

    微辣

    榴莲

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

    初学者有什么不懂的可以加下我的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最重要的东西,有点多,但是写得很详细

        本文链接:https://www.haomeiwen.com/subject/idomaxtx.html