Python之字典及while循环解读
作者:女王的空间
1.字典涉及的知识点
1.1 遍历字典所有的键-值对
要点:用item()方法
favorite_languages ={ 'jen':'python' 'sarch':'C' 'enward':'ruby' 'phil':'python' } for name, language in favorite_languages.item(): print(name.title() + "'s favorite language is " + languages.title() + ".")
这里的name,以及language,都是变量,不用非要命名为key,value。
这样命名可以方便用户理解。
同时item()方法返回一个键-值对列表。
1.2 按顺序遍历字典所有的键
要点:按顺序用sorted()函数,用for语句遍历整个字典
favorite_languages ={ 'jen':'python' 'sarch':'C' 'enward':'ruby' 'phil':'python' } for name in sorted(favorite_languages.keys()): print(name.titile() + ",thank you for taking the poll.")
这里的for语句类似于其他for语句,但对方法dictionary.keys()的结果调用了函数sorted()。
这使得Python列出了字典中的所有键,并在遍历前对这个列表进行排序。
1.3 考虑字典内元素是否重复
要点:set()集合类似与列表,确保每个元素独一无二。
favorite_languages ={ 'jen':'python' 'sarch':'C' 'enward':'ruby' 'phil':'python' } print("The following languages have been metionted.") for language in set(favorite_languages.value()): print(languages.title())
1.4 嵌套字典列表
要求
1.生成30个外星人;
2.每个外星人包含颜色、生命值、和速度,并输出;
3.前3个外星人的中,颜色为绿色的外星人,将其颜色更改为黄色;
4.并将对应这些外星人的速度改为中速,生命值改为10。
//创建一个用于存储外星人的空列表 aliens = [] //创建30个绿色的外星人 for alien_number in range(30): new_alien = ['color' = 'green','point' = 5, 'speed' = 'slow'] aliens.append(new_alien) for aliens in range[:3]: if alien['color' = 'green']: alien['color'] = 'yellow' alien['point'] = 10 alien['speed'] = 'medium' //显示前五个外星人 for alien in aliens[:5]: print(alien) print("...")
1.5 在字典中存储列表
//存储所点披萨的信息 pizza = { 'crust': 'thick', 'toppings' = ['mushrooms','extra cheese'], } //概述所点的披萨 print("You order a " + pizza['crust'] + "-crust pizza " + "with the following toppings: ") for topping in pizza['toppings']: print("\t" + topping)
每当一个键需要关联多个值时,就可以在字典中嵌套一个列表。在字典中存储字典也是同理。
2.用户输入
2.1 input工作原理
input()让程序暂停运行,等待用户输入一些文本,当用户按回车键后继续运行。
输入的变量存储在message中,当print时将值呈现给用户。
prompt = "If you tell us who you are ,we can personalize the messages you see." prompt += "\nWhat is your first name? "
这是创建多行字符串的格式,运算符 += 在存储在prompt中的字符串在末尾加一个字符串。
2.2 使用int()来获取数值输入
age = input("How old are you?") print('age')
'19'
会看到输出的age的数字带有单引号,属于字符串类型。
因此当此值与其他数值做比较的时候就会发生错误。
因此使用 age = int(age)
age = input("How old are you?") age = int(age) age >= 18 True
2.3求模运算符
判断数字是奇是偶
number = input(" Enter a number ,and I'll tell you if it's even or odd:") number = int(number) if number % 2 == 0: print("\nThe number " + str(number) + " is even. ") else: print("\nThe number " + str(number) + " is odd. ")
3. while循环
3.1 while 和 if 混合使用
for循环用于针对集合中的每个元素的一个代码块,而while循环则不断运行,直到指定的条件不满足为止。
eg: 判断是否退出游戏
prompt = "\nTell me something, and I Will repect it back you:" prompt += "\nEnter 'quit' to end the program. " message = " " if message != 'quit': message = input(prompt) print(message)
但是此方法的缺点是 会将quit也打印出来。
因此 改进:
prompt = "\nTell me something, and I Will repect it back you:" prompt += "\nEnter 'quit' to end the program. " message = " " while message != 'quit': message = input(prompt) if message != 'quit': print(message)
也可使用标志,这里我们名命此标志为acitve(可指定任何名字),来判断游戏是否运行:
prompt = "\nTell me something, and I Will repect it back you:" prompt += "\nEnter 'quit' to end the program. " active = True while avtive: message = input(prompt) if message == 'quit': active = Flase else: print(message)
此结果与上一个方法的结果相同。
3.2 使用break退出循环
prompt = "\nTell me something, and I Will repect it back you:" prompt += "\nEnter 'quit' to end the program. " while True: message = input(prompt) if message == 'quit': break else: print(message)
3.3 使用continue
要返回循环的开头,并根据条件测试结果决定是否继续执行循环,可以使用continue语句,它不像break语句那样不再执行余下的代码并退出。
current_number = 0 while current_number < 10: current_number += 1 if current_number % 2 ==0: continue print(current_number)
结果
1
3
5
7
9
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。