python编程从入门到实践答案二

python编程从入门到实践

  • 第五章 if语句
      • 1.条件测试:
      • 2.更多的条件测试:
      • 3.外星人颜色#1:
      • 4. 外星人颜色#2:
      • 5. 外星人颜色#3:
      • 6. 人生的不同阶段:
      • 7. 喜欢的水果:
      • 8. 以特殊方式跟管理员打招呼:
      • 9. 处理没有用户的情形:
      • 10.检查用户名:
      • 11.序数:
  • 第六章 字典
      • 1. 人:
      • 2. 喜欢的数字:
      • 3. 词汇表:
      • 4. 词汇表2:
      • 5. 河流:
      • 6. 调查:
      • 7. 人:
      • 8. 宠物:
      • 9.喜欢的地方:
      • 10. 喜欢的数字:
      • 11. 城市:
      • 12. ~~扩展:本章的示例足够复杂,可以以很多方式进行扩展了。请对本章的一个示例进行扩展:添加键和值、调整程序要解决的问题或改进输出的格~~
  • 第七章 用户输入和while循环
      • 1. 汽车租赁:
      • 2. 餐馆订位:
      • 3. 10的整数倍:
      • 4. 比萨配料:
      • 5. 电影票:
      • 6. 三个出口:
      • 7. 无限循环:
      • 8. 熟食店:
      • 9. 五香烟熏牛肉(pastrami)卖完了:
      • 10.梦想的度假胜地:
  • 第八章函数
      • 1消息:
      • 2. 喜欢的图书:
      • 3. T恤:
      • 4. 大号T恤:
      • 5. 城市:
      • 6. 城市名:
      • 7. 专辑:
      • 8. 用户的专辑:
      • 9.
      • 10.
      • 11.
      • 12.
      • 13.
      • 14.
      • 15
      • 16.

在这里插入图片描述

第五章 if语句

1.条件测试:

编写一系列条件测试;将每个测试以及你对其结果的预测和实际结果都打印出来。你编写的代码应类似于下面这样:

car = 'subaru'
print("Is car == 'subaru'?I predict True.")
print(car == 'subaru')print("\nIs car == 'audi'?I predict False.")
print(car == 'audi')

·详细研究实际结果,直到你明白了它为何为True或False。
·创建至少10个测试,且其中结果分别为True和False的测试都至少有5个。

car = 'subaru'
print("Is car == 'subaru'? I predict TRUE")
print(car == 'subaru')print("\nIs car == 'audi'? I predict FALSE")
print(car == 'audi')

2.更多的条件测试:

你并非只能创建10个测试。如果你想尝试做更多的比较,可再编写一些测试,并将它们加入到conditional_tests.py中。对于下面列出的各种测试,至少编写一个结果为True和False的测试。

·检查两个字符串相等和不等。
·使用函数lower()的测试。
·检查两个数字相等、不等、大于、小于、大于等于和小于等于。
·使用关键字and和or的测试。
·测试特定的值是否包含在列表中。
·测试特定的值是否未包含在列表中。

m1 = "Zoctopus"
m2 = "nian"
m3 = "Zoctopus"
cars = ['audi', 'bmw', 'subaru', 'toyota']
# 检查两个字符串相等和不等
if m1 == m3:print("m1 equal m3")
if m1 != m2:print("m1 not equal m2")# 使用函数lower()的测试
name = 'ADS'
if name.lower() == 'ads':print("true")# 检查两个数字相等、不等、大于、小于、大于等于和小于等于
age = 23
age_1 = 18
if age == 23:print("true")
if age > 18:print("true")# 使用关键字and和or的测试
if age > 10 and age_1 < 22:print("true")
if age > 25 or age_1 < 25:print("true")# 测试特定的值是否包含在列表中
if 'audi' in cars:print("in true")# 测试特定的值是否未包含在列表中
if 'aaaai' not in cars:print("not in true")

3.外星人颜色#1:

假设在游戏中刚射杀了一个外星人,请创建一个名为alien_color的变量,并将其设置为’green’、‘yellow’或’red’。
·编写一条if语句,检查外星人是否是绿色的;如果是,就打印一条消息,指出玩家获得了5个点。
·编写这个程序的两个版本,在一个版本中上述测试通过了,而在另一个版本中未通过(未通过测试时没有输出)

# 通过
alien_color = 'green'if alien_color == 'green':print("You just earned 5 points!")# 未通过
alien_color = 'red'if alien_color == 'green':print("You just earned 5 points!")

4. 外星人颜色#2:

像练习5-3那样设置外星人的颜色,并编写一个if-else结构。

·如果外星人是绿色的,就打印一条消息,指出玩家因射杀该外星人获得了5个点。

·如果外星人不是绿色的,就打印一条消息,指出玩家获得了10个点。

·编写这个程序的两个版本,在一个版本中执行if代码块,而在另一个版本中执行else代码块。


# 版本一
alien_color = 'green'if alien_color == 'green':print("You just earned 5 points!")
else:print("You just earned 10 points!")# 版本二
alien_color = 'yellow'if alien_color == 'green':print("You just earned 5 points!")
else:print("You just earned 10 points!")

5. 外星人颜色#3:

将练习5-4中的if-else结构改为if-elif-else结构。
·如果外星人是绿色的,就打印一条消息,指出玩家获得了5个点。
·如果外星人是黄色的,就打印一条消息,指出玩家获得了10个点。
·如果外星人是红色的,就打印一条消息,指出玩家获得了15个点。
·编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。

alien_color = 'red'if alien_color == 'green':print("You just earned 5 points!")
elif alien_color == 'yellow':print("You just earned 10 points!")
else:print("You just earned 15 points!")alien_color = 'yellow'if alien_color == 'green':print("You just earned 5 points!")
elif alien_color == 'yellow':print("You just earned 10 points!")
else:print("You just earned 15 points!")alien_color = 'green'if alien_color == 'green':print("You just earned 5 points!")
elif alien_color == 'yellow':print("You just earned 10 points!")
else:print("You just earned 15 points!")

6. 人生的不同阶段:

设置变量age的值,再编写一个if-elif-else结构,根据age的值判断处于人生的哪个阶段。
·如果一个人的年龄小于2岁,就打印一条消息,指出他是婴儿。
·如果一个人的年龄为2(含)~4岁,就打印一条消息,指出他正蹒跚学步。
·如果一个人的年龄为4(含)~13岁,就打印一条消息,指出他是儿童。
·如果一个人的年龄为13(含)~20岁,就打印一条消息,指出他是青少年。
·如果一个人的年龄为20(含)~65岁,就打印一条消息,指出他是成年人。
·如果一个人的年龄超过65(含)岁,就打印一条消息,指出他是老年人。

age = 17if age < 2:print("You're a baby!")
elif age < 4:print("You're a toddler!")
elif age < 13:print("You're a kid!")
elif age < 20:print("You're a teenager!")
elif age < 65:print("You're an adult!")
else:print("You're an elder!")

7. 喜欢的水果:

创建一个列表,其中包含你喜欢的水果,再编写一系列独立的if语句,检查列表中是否包含特定的水果。
·将该列表命名为favorite_fruits,并在其中包含三种水果。
·编写5条if语句,每条都检查某种水果是否包含在列表中,如果包含在列表中,就打印一条消息,如“You really like bananas!”。

favorite_fruits = ['blueberries', 'salmonberries', 'peaches']if 'bananas' in favorite_fruits:print("You really like bananas!")
if 'apples' in favorite_fruits:print("You really like apples!")
if 'blueberries' in favorite_fruits:print("You really like blueberries!")
if 'kiwis' in favorite_fruits:print("You really like kiwis!")
if 'peaches' in favorite_fruits:print("You really like peaches!")

8. 以特殊方式跟管理员打招呼:

创建一个至少包含5个用户名的列表,且其中一个用户名为’admin’。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。
·如果用户名为’admin’,就打印一条特殊的问候消息,如“Hello admin,would you like to see a status report?”。
·否则,打印一条普通的问候消息,如“Hello Eric,thank you for logging in again”

usernames = ['admin', 'yf', 'sks', 'yl', 'yjy']for username in usernames:if username == 'admin':print("Hello admin, would you like to see a status report?")else:print("Hello " + username + ", thank you for logging in again!")

9. 处理没有用户的情形:

在为完成练习5-8编写的程序中,添加一条if语句,检查用户名列表是否为空。
·如果为空,就打印消息“We need to find some users!”。
·删除列表中的所有用户名,确定将打印正确的消息。

usernames = []if usernames:for username in usernames:if username == 'admin':print("Hello admin, would you like to see a status report?")else:print("Hello " + username + ", thank you for logging in again!")else:print("We need to find some users!")

10.检查用户名:

按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。

·创建一个至少包含5个用户名的列表,并将其命名为current_users。

·再创建一个包含5个用户名的列表,将其命名为new_users,并确保其中有一两个用户名也包含在列表current_users中。

·遍历列表new_users,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。

·确保比较时不区分大小写;换句话说,如果用户名’John’已被使用,应拒绝用户名’JOHN’。

current_users = ['eric', 'willie', 'admin', 'erin', 'Ever']
new_users = ['sarah', 'Willie', 'PHIL', 'ever', 'Iona']# 将current_users中的元素全都转换为小写
current_users_lower = [user.lower() for user in current_users]for new_user in new_users:if new_user.lower() in current_users_lower:  # 判断注册的名字是否已经存在print("Sorry " + new_user + ", that name is taken.")else:print("Great, " + new_user + " is still available.")

11.序数:

序数表示位置,如1st和2nd。大多数序数都以th结尾,只有1、2和3例外。
·在一个列表中存储数字1~9。
·遍历这个列表。·在循环中使用一个if-elif-else结构,以打印每个数字对应的序数。输出内容应为1st、2nd、3rd、4th、5th、6th、7th、8th和9th,但每个序数都独占一行。

numbers = [1,2,3,4,5,6,7,8,9]for num in numbers:if num == 1:print("1st")elif num == 2:print("2nd")elif num == 3:print("3rd")else:print(str(num) + "th")

第六章 字典

1. 人:

使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。该字典应包含键first_name、last_name、age和city。将存储在该字典中的每项信息都打印出来。

person = {'first_name': 'shang','last_name': 'yang','age': 21,'city': 'qingdao',}print(person['first_name'])
print(person['last_name'])
print(person['age'])
print(person['city'])

2. 喜欢的数字:

使用一个字典来存储一些人喜欢的数字。请想出5个人的名字,并将这些名字用作字典中的键;想出每个人喜欢的一个数字,并将这些数字作为值存储在字典中。打印每个人的名字和喜欢的数字。为让这个程序更有趣,通过询问朋友确保数据是真实的。

favorite_numbers = {'mandy': 42,'micah': 23,'gus': 7,'hank': 1000000,'maggie': 0,}num = favorite_numbers['mandy']
print("Mandy's favorite number is " + str(num) + ".")num = favorite_numbers['micah']
print("Micah's favorite number is " + str(num) + ".")num = favorite_numbers['gus']
print("Gus's favorite number is " + str(num) + ".")num = favorite_numbers['hank']
print("Hank's favorite number is " + str(num) + ".")num = favorite_numbers['maggie']
print("Maggie's favorite number is " + str(num) + ".")

3. 词汇表:

Python字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。

  • 想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。
  • 以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,再打印词汇的含义;也可在一行打印词汇,再使用换行符(\n)插入一个空行,然后在下一行以缩进的方式打印词汇的含义。
glossary = {'string': 'A series of characters.','comment': 'A note in a program that the Python interpreter ignores.','list': 'A collection of items in a particular order.','loop': 'Work through a collection of items, one at a time.','dictionary': "A collection of key-value pairs.",}word = 'string'
print("\n" + word.title() + ": " + glossary[word])word = 'comment'
print("\n" + word.title() + ": " + glossary[word])word = 'list'
print("\n" + word.title() + ": " + glossary[word])word = 'loop'
print("\n" + word.title() + ": " + glossary[word])word = 'dictionary'
print("\n" + word.title() + ": " + glossary[word])

4. 词汇表2:

既然你知道了如何遍历字典,现在请整理你为完成练习6-3而编写的代码,将其中的一系列print语句替换为一个遍历字典中的键和值的循环。确定该循环正确无误后,再在词汇表中添加5个Python术语。当你再次运行这个程序时,这些新术语及其含义将自动包含在输出中。

glossary = {'string': 'A series of characters.','comment': 'A note in a program that the Python interpreter ignores.','list': 'A collection of items in a particular order.','loop': 'Work through a collection of items, one at a time.','dictionary': "A collection of key-value pairs.",'key': 'The first item in a key-value pair in a dictionary.','value': 'An item associated with a key in a dictionary.','conditional test': 'A comparison between two values.','float': 'A numerical value with a decimal component.','boolean expression': 'An expression that evaluates to True or False.',}for word, definition in glossary.items():print("\n" + word.title() + ": " + definition)

5. 河流:

创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键—值对可能是’nile’:‘egypt’。

  • 使用循环为每条河流打印一条消息,如“The Nile runs through Egypt.”。
  • 使用循环将该字典中每条河流的名字都打印出来。
  • 使用循环将该字典包含的每个国家的名字都打印出来
rivers = {'nile': 'egypt','mississippi': 'united states','fraser': 'canada','kuskokwim': 'alaska','yangtze': 'china',}for river, country in rivers.items():print("The " + river.title() + " flows through " + country.title() + ".")# 打印该字典中每条河流的名字
print("\nThe following rivers are included in this data set:")
for river in rivers.keys():print("- " + river.title())#打印该字典中包含的每个国家的名字
print("\nThe following countries are included in this data set:")
for country in rivers.values():print("- " + country.title())

6. 调查:

在6.3.1节编写的程序favorite_languages.py中执行以下操作。·创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。·遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}for name, language in favorite_languages.items():print(name.title() + "'s favorite language is " +language.title() + ".")print("\n")coders = ['phil', 'josh', 'david', 'becca', 'sarah', 'matt', 'danielle']
for coder in coders:if coder in favorite_languages.keys():print("Thank you for taking the poll, " + coder.title() + "!")else:print(coder.title() + ", what's your favorite programming language?")

7. 人:

在为完成练习6-1而编写的程序中,再创建两个表示人的字典,然后将这三个字典都存储在一个名为people的列表中。遍历这个列表,将其中每个人的所有信息都打印出来。

people = []# 定义一些人的信息,并添加进列表
person = {'first_name': 'eric','last_name': 'matthes','age': 43,'city': 'sitka',}
people.append(person)person = {'first_name': 'ever','last_name': 'matthes','age': 5,'city': 'sitka',}
people.append(person)person = {'first_name': 'willie','last_name': 'matthes','age': 8,'city': 'sitka',}
people.append(person)# 打印所有信息
for person in people:name = person['first_name'].title() + " " + person['last_name'].title()age = str(person['age'])city = person['city'].title()print(name + ", of " + city + ", is " + age + " years old.")

8. 宠物:

创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;在每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为pets的列表中,再遍历该列表,并将宠物的所有信息都打印出来。

pets = []pet = {'type': 'fish','name': 'john','owner': 'guido',}
pets.append(pet)pet = {'type': 'chicken','name': 'clarence','owner': 'tiffany',}
pets.append(pet)pet = {'type': 'dog','name': 'peso','owner': 'eric',}
pets.append(pet)for pet in pets:print("\nHere's what I know about " + pet['name'].title() + ":")for key, value in pet.items():print("\t" + key + ": " + str(value))

9.喜欢的地方:

创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1~3个地方。为让这个练习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。

favorite_places = {'znn': ['chengdu', 'shanghai', 'hangzhou'],'yl': ['chengdu', 'huang montains'],'other': ['xi-an', 'xinjiang', 'nanji']}for name, places in favorite_places.items():print("\n" + name.title() + " likes the following places:")for place in places:print("- " + place.title())

10. 喜欢的数字:

修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来。

favorite_numbers = {'mandy': [42, 17],'micah': [42, 39, 56],'gus': [7, 12],}for name, numbers in favorite_numbers.items():print("\n" + name.title() + " likes the following numbers:")for number in numbers:print("  " + str(number))

11. 城市:

创建一个名为cities的字典,其中将三个城市名用作键;对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。在表示每座城市的字典中,应包含country、population和fact等键。将每座城市的名字以及有关它们的信息都打印出来

cities = {'santiago': {'country': 'chile','population': 6158080,'nearby mountains': 'andes',},'talkeetna': {'country': 'alaska','population': 876,'nearby mountains': 'alaska range',},'kathmandu': {'country': 'nepal','population': 1003285,'nearby mountains': 'himilaya',}}for city, city_info in cities.items():country = city_info['country'].title()population = city_info['population']mountains = city_info['nearby mountains'].title()print("\n" + city.title() + " is in " + country + ".")print("  It has a population of about " + str(population) + ".")print("  The " + mountains + " mountains are nearby.")

12. 扩展:本章的示例足够复杂,可以以很多方式进行扩展了。请对本章的一个示例进行扩展:添加键和值、调整程序要解决的问题或改进输出的格


aliens = []alien = {'name': 'A','color': 'green','point': 5,'speed': 'slow',}
aliens.append(alien)alien = {'name': 'B','color': 'yellow','point': 10,'speed': 'med',}
aliens.append(alien)alien = {'name': 'C','color': 'red','point': 10,'speed': 'fast',}
aliens.append(alien)print(aliens)# for循环打印
for alien_info in aliens:print("\nHere's what I know about " + alien_info['name'].title() + ":")for key, value in alien_info.items():print("\t" + key + ": " + str(value))

第七章 用户输入和while循环

1. 汽车租赁:

编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如“Let me see if I can find you a Subaru”

car = input("What kind of car would you like? ")print("Let me see if I can find you a " + car.title() + ".")

2. 餐馆订位:

编写一个程序,询问用户有多少人用餐。如果超过8人,就打印一条消息,指出没有空桌;否则指出有空桌。

number = input("how many people eat? ")
number = int(number)
if number > 8:print("no empty table.")
else:print("have empty table.")

3. 10的整数倍:

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

number = input("input a number: ")
number = int(number)
if number % 10 == 0:print("yes")
else:print("no")

4. 比萨配料:

编写一个循环,提示用户输入一系列的比萨配料,并在用户输入’quit’时结束循环。每当用户输入一种配料后,都打印一条消息,说我们会在比萨中添加这种配料。

prompt = "\nTell me Pizza Toppings"
prompt += "\nEnter 'quit' to end the program."active = True
while active:message = raw_input(prompt)if message == 'quit':active = Falseelse:print('Add ' + message + ".")

5. 电影票:

有家电影院根据观众的年龄收取不同的票价:不到3岁的观众免费;3~12岁的观众为10美元;超过12岁的观众为15美元。请编写一个循环,在其中询问用户的年龄,并指出其票价。

prompt = "How old are you?"
prompt += "\nEnter 'quit' when you are finished. "while True:age = input(prompt)if age == 'quit':breakage = int(age)if age < 3:print("  You get in free!")elif age < 13:print("  Your ticket is $10.")else:print("  Your ticket is $15.")

6. 三个出口:

以另一种方式完成练习7-4或练习7-5,在程序中采取如下所有做法。·在while循环中使用条件测试来结束循环。·使用变量active来控制循环结束的时机。·使用break语句在用户输入’quit’时退出循环。

在这里插入代码片

7. 无限循环:

编写一个没完没了的循环,并运行它(要结束该循环,可按Ctrl+C,也可关闭显示输出的窗口)。

signal = True
x = 2
while signal:print(x)

8. 熟食店:

创建一个名为sandwich_orders的列表,在其中包含各种三明治的名字;再创建一个名为finished_sandwiches的空列表。遍历列表sandwich_orders,对于其中的每种三明治,都打印一条消息,如I made your tuna sandwich,并将其移到列表finished_sandwiches。所有三明治都制作好后,打印一条消息,将这些三明治列出来。

sandwich_orders = ['veggie', 'grilled cheese', 'turkey', 'roast beef']
finished_sandwiches = []while sandwich_orders:finish_sandwich = sandwich_orders.pop()print("I made your " + finish_sandwich)finished_sandwiches.append(finish_sandwich)print("\nThe sandwiches have been finished !")
for finish in finished_sandwiches:print(finish)

9. 五香烟熏牛肉(pastrami)卖完了:

使用为完成练习7-8而创建的列表sandwich_orders,并确保’pastrami’在其中至少出现了三次。在程序开头附近添加这样的代码:打印一条消息,指出熟食店的五香烟熏牛肉卖完了;再使用一个while循环将列表sandwich_orders中的’pastrami’都删除。确认最终的列表finished_sandwiches中不包含’pastrami’。

sandwich_orders = ['pastrami', 'veggie', 'grilled cheese', 'pastrami','turkey', 'roast beef', 'pastrami']
finished_sandwiches = []print("I'm sorry, we're all out of pastrami today.")
while 'pastrami' in sandwich_orders:sandwich_orders.remove('pastrami')print("\n")
while sandwich_orders:finish_sandwich = sandwich_orders.pop()print("I'm working on your " + finish_sandwich + " sandwich.")finished_sandwiches.append(finish_sandwich)print("\n")
for sandwich in finished_sandwiches:print("I made a " + sandwich + " sandwich.")

10.梦想的度假胜地:

编写一个程序,调查用户梦想的度假胜地。使用类似于“If you could visit one place in the world,where would you go?”的提示,并编写一个打印调查结果的代码块。

name_prompt = "\nWhat's your name? "
place_prompt = "If you could visit one place in the world, where would it be? "
continue_prompt = "\nWould you like to let someone else respond? (yes/no) "responses = {}while True:name = input(name_prompt)place = input(place_prompt)responses[name] = placerepeat = raw_input(continue_prompt)if repeat != 'yes':breakprint("\n--- Results ---")
for name, place in responses.items():print(name.title() + " would like to visit " + place.title() + ".")

第八章函数

1消息:

编写一个名为display_message()的函数,它打印一个句子,指出你在本章学的是什么。调用这个函数,确认显示的消息正确无误。

def display_message():print("Study Function.")display_message()

2. 喜欢的图书:

编写一个名为favorite_book()的函数,其中包含一个名为title的形参。这个函数打印一条消息,如One of my favorite books is Alice in Wonderland。调用这个函数,并将一本图书的名称作为实参传递给它。

def favorite_book(title):print("One of my favorite book is " + title + ".")favorite_book('CSAPP')

3. T恤:

编写一个名为make_shirt()的函数,它接受一个尺码以及要印到T恤上的字样。这个函数应打印一个句子,概要地说明T恤的尺码和字样。使用位置实参调用这个函数来制作一件T恤;再使用关键字实参来调用这个函数。

def make_shirt(size, message):print("\nI'm going to make a " + size + " t-shirt.")print('It will say, "' + message + '"')make_shirt('large', 'I love Python!')
make_shirt(message="Readability counts.", size='medium')

4. 大号T恤:

修改函数make_shirt(),使其在默认情况下制作一件印有字样“I love Python”的大号T恤。调用这个函数来制作如下T恤:一件印有默认字样的大号T恤、一件印有默认字样的中号T恤和一件印有其他字样的T恤(尺码无关紧要)。

def make_shirt(size='large', message='I love Python!'):print("\nI'm going to make a " + size + " t-shirt.")print('It will say, "' + message + '"')make_shirt()
make_shirt(size='medium')
make_shirt('small', 'Happy Every Day.')

5. 城市:

编写一个名为describe_city()的函数,它接受一座城市的名字以及该城市所属的国家。这个函数应打印一个简单的句子,如Reykjavik is in Iceland。给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,且其中至少有一座城市不属于默认国家。

def describe_city(cityname,contury='china'):print(cityname.title + " is in " + contury.title + ".")describe_city('beijing')
describe_city('NewYork','American')
describe_city('qingdao')

6. 城市名:

编写一个名为city_country()的函数,它接受城市的名称及其所属的国家。这个函数应返回一个格式类似于下面这样的字符串:

"Santiago,Chile"

至少使用三个城市-国家对调用这个函数,并打印它返回的值。

def city_country(city,country):return (city.title() + ',' + country.title())city = city_country('shanghai', 'china')
print(city)city = city_country('ushuaia', 'argentina')
print(city)city = city_country('longyearbyen', 'svalbard')
print(city)

7. 专辑:

编写一个名为make_album()的函数,它创建一个描述音乐专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回的值,以核实字典正确地存储了专辑的信息。
给函数make_album()添加一个可选形参,以便能够存储专辑包含的歌曲数。如果调用这个函数时指定了歌曲数,就将这个值添加到表示专辑的字典中。调用这个函数,并至少在一次调用中指定专辑包含的歌曲数。

def make_album(artist, title):album_dict = {'artist': artist.title(),'title': title.title(),}return album_dictalbum = make_album('metallica', 'ride the lightning')
print(album)album = make_album('beethoven', 'ninth symphony')
print(album)album = make_album('willie nelson', 'red-headed stranger')
print(album)

8. 用户的专辑:

在为完成练习8-7编写的程序中,编写一个while循环,让用户输入一个专辑的歌手和名称。获取这些信息后,使用它们来调用函数make_album(),并将创建的字典打印出来。在这个while循环中,务必要提供退出途径。

def make_album(artist, title, tracks=0):"""Build a dictionary containing information about an album."""album_dict = {'artist': artist.title(),'title': title.title(),}if tracks:album_dict['tracks'] = tracksreturn album_dicttitle_prompt = "\nWhat album are you thinking of? "
artist_prompt = "Who's the artist? "print("Enter 'quit' at any time to stop.")while True:title = input(title_prompt)if title == 'quit':breakartist = rinput(artist_prompt)if artist == 'quit':breakalbum = make_album(artist, title)print(album)print("\nThanks for responding!")

9.

def show_magicians(names):for name in names:print(name.title())magicians = ['znn','david','amy']
show_magicians(magicians)

10.

11.

12.

13.

14.

15

16.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue实现高校学生党员发展管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现高校学生党员发展管理系统演示 摘要 随着高校学生规模的不断扩大&#xff0c;高校内的党员统计及发展管理工作面临较大的压力&#xff0c;高校信息化建设的不断优化发展也进一步促进了系统平台的应用&#xff0c;借助系统平台可以实现更加高效便捷的党员信息…

Elasticsearch从入门到精通-03基本语法学习

Elasticsearch从入门到精通-03基本语法学习 &#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是程序员行走的鱼 &#x1f4d6; 本篇主要介绍和大家一块学习一下ES基本语法,主要包括索引管理、文档管理、映射管理等内容 1.1 了解Restful ES对数据进行增、删、改、查是以…

Ajax (1)

什么是Ajax&#xff1a; 浏览器与服务器进行数据通讯的技术&#xff0c;动态数据交互 axios库地址&#xff1a; <script src"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> 如何使用呢&#xff1f; 我们现有个感性的认识 <scr…

网页设计中通过css在一个固定宽度的div容器中让一行超出的文本隐藏并省略掉

实现效果&#xff1a; 实现的关键css&#xff1a; overflow&#xff1a;hidden&#xff1b;这个表示超出容器的内容进行隐藏 white-space&#xff1a;nowrap&#xff1b;表示文本不断行显示 text-overflow&#xff1a;ellipsis&#xff1b;表示超出的部分用省略号进行表示 …

jar运行报错Unable to read meta-data for class

目录 一、场景描述 二、解决办法 1&#xff09;情况一 2&#xff09;情况二 贴一下部署报错堆栈信息&#xff1a; java.lang.IllegalStateException: Unable to read meta-data for class com.zhh.zhhd.biz.config.Test1Configat org.springframework.boot.autoconfigure.…

数字化转型导师坚鹏:科技创新产业发展研究及科技金融营销创新

科技创新产业发展研究及科技金融营销创新 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不清楚科技创新产业的发展现状&#xff1f; 不知道科技金融有哪些成功的案例&#xff1f; 不知道科技金融如何进行营销创新&#xff1f; 课程特色&#xff1a; 以案例…

事务【MySQL】

稍等更新图片。。。。 事务的概念 引入 在 A 转账 100 元给 B 的过程中&#xff0c;如果在 A 的账户已经减去了 100 元&#xff0c;B 的账户还未加上 100 元之前断网&#xff0c;那么这 100 元将会凭空消失。对于转账这件事&#xff0c;转出和转入这两件事应该是绑定在一起的…

【刷题】Leetcode 415 字符串相加 和 34 字符串相乘

刷题 Leetcode 415 字符串相加题目描述 思路一&#xff08;模拟大法版&#xff01;&#xff01;&#xff01;&#xff09;Leetcode 34 字符串相乘题目描述 思路一&#xff08;模拟大法版&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&…

python 蓝桥杯之并查集

文章目录 总述合并过程查找过程算法实战实战1 总述 并查集&#xff08;Disjoint-set Union&#xff0c;简称并查集&#xff09;是一种用来管理元素分组情况的数据结构。它主要用于解决集合的合并与查询问题&#xff0c;通常涉及到以下两种操作&#xff1a; 合并&#xff08;Uni…

rtthread stm32h743的使用(七)dac设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验&#xff0c;核心板如图&#xff1a; 1.我们还是先建立工程 2.生成工程后打开mx进行配置&#xff0c;时钟配置如前所讲&#xff0c;不在赘述 3.更改mx文件…

CSS常见用法 以及JS基础语法

CSS简介 首先我们要明白css对网页的页面效果就类似于化妆的效果,使得页面更好看 我们需要明白的就是CSS怎么使用即可 首先CSS的基本语法是<style></style>标签来修改 基本语法规范是选择器n条选择规范 例如 <style>p{color : red;} </style> 这里就是将…

【Linux系统】线程

目录 一.线程的概念 (1)地址空间是进程的资源窗口 (2)轻量级进程 二.线程的理解 1.Linux中线程的实现方案 2. 线程VS进程 3.线程比进程更加轻量化 4.线程的优点 5.线程的缺点 6.线程共享的资源 7.线程私有的资源 三.地址空间虚拟到物理的转化 1.页框 2.重新理解文…

HelpLook VS GitBook:知识库优劣详解

在信息爆炸的时代&#xff0c;企业要保持竞争优势&#xff0c;就必须善于管理和利用内部的知识资产。企业知识库作为一种集中存储和共享知识的工具&#xff0c;正在成为现代企业不可或缺的一部分。 HelpLook和Gitbook是提供专业知识库的两个平台&#xff0c;也被大众熟知。它们…

C++的一些基础语法

前言&#xff1a; 本篇将结束c的一些基础的语法&#xff0c;方便在以后的博客中出现&#xff0c;后续的一些语法将在涉及到其它的内容需要用到的时候具体展开介绍&#xff1b;其次&#xff0c;我们需要知道c是建立在c的基础上的&#xff0c;所以c的大部分语法都能用在c上。 1.…

C#MQTT编程10--MQTT项目应用--工业数据上云

1、文章回顾 这个系列文章已经完成了9个内容&#xff0c;由浅入深地分析了MQTT协议的报文结构&#xff0c;并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中&#xff0c;这节继续上马一个项目应用&#xff0c;作为本系列的结束&#xff0c;奉献给伙伴们&#x…

DDT+yaml实现数据驱动接口自动化

前言 在之前的文章中我们知道了yaml文件可以进行接口自动化。除了yaml文件&#xff0c;Excel文档也可以用来编写自动化测试用例。 一定很想知道这两者有什么区别吧&#xff1f; 1、Excel使用简单&#xff0c;维护难&#xff0c;多种数据类型转换起来比较复杂 2、yaml学习稍…

MySQL通过SQL语句进行递归查询

这里主要是针对于MySQL8.0以下版本&#xff0c;因为MySQL8.0版本出来了一个WITH RECURSIVE函数专门用来进行递归查询的 先看下表格数据&#xff0c;就是很普通的树结构数据&#xff0c;通过parentId关联上下级关系 下面我们先根据上级节点id递归获取所有的下级节点数据&#x…

Jenkins 节点该如何管理?

Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点)&#xff0c;分布式构建能够让同一套代码在不同的环境(如&#xff1a;Windows 和 Linux 系统)中编译、测试等 Jenkins 的任务可以分布在不同的节点上运行 节点上需要配置 Java 运行时环境&#xff0c;JDK 版本大于 1.5 节…

2024春招算法打卡-腾讯WXG

大数相乘 class Solution {public String multiply(String num1, String num2) {String ZERO_STR "0";String ONE_STR "1";// 其中一个为0直接返回0if(ZERO_STR.equals(num1) || ZERO_STR.equals(num2)){return ZERO_STR;}// 其中一个为1直接返回另一…

C语言-写一个简单的Web服务器(一)

基于TCP的web服务器 概述 C语言可以干大事&#xff0c;我们基于C语言可以完成一个简易的Web服务器。当你能够自行完成web服务器&#xff0c;你会对C语言有更深入的理解。对于网络编程&#xff0c;字符串的使用&#xff0c;文件使用等等都会有很大的提高。 关于网络的TCP协议在…