您的位置:首页 > 编程语言 > Python开发

Python练习 Chapter 7

2018-03-23 13:15 369 查看
7-1 汽车租赁 : 编写一个程序, 询问用户要租赁什么样的汽车, 并打印一条消息, 如“Let me see if I can find you a Subaru”。car = input("What kind of car do you want to rent? ")
print("Let me see if I can find you a " + car)示例运行:What kind of car do you want to rent? BMW
Let me see if I can find you a BMW
7-2 餐馆订位 : 编写一个程序, 询问用户有多少人用餐。 如果超过8人, 就打印一条消息, 指出没有空桌; 否则指出有空桌。num = input("May you tell me how many people dining at it? ")
num = int(num)
if num > 8:
print('Sorry, we have no empty table now.')
else:
print("I'm more than pleasant to tell you there's an empty table. Come with me.")示例运行:May you tell me how many people dining at it? 8
I'm more than pleasant to tell you there's an empty table. Come with me.
May you tell me how many people dining at it? 10
Sorry, we have no empty table now.
7-3 10的整数倍 : 让用户输入一个数字, 并指出这个数字是否是10的整数倍num = input("Please input a number: ")
num = int(num)
if num % 10 == 0:
print("This number is a multiple of 10.")
else:
print("This number is not a multiple of 10.")示例运行:Please input a number: 80
This number is a multiple of 10.
Please input a number: 77
This number is not a multiple of 10.
7-4 比萨配料 : 编写一个循环, 提示用户输入一系列的比萨配料, 并在用户输入'quit' 时结束循环。 每当用户输入一种配料后, 都打印一条消息, 说我们会在比萨中添加这种配料。
toppings = []
msg = "\nTell me the topping you want to add to pizza."
msg += "\nEnter quit to finish ordering. "
while True:
topping = input(msg)
if topping == 'quit':
break
else:
toppings.append(topping)
print("We will add " + topping + " into pizza.")示例运行:Tell me the topping you want to add to pizza.
Enter quit to finish ordering. pepperoin
We will add pepperoin into pizza.

Tell me the topping you want to add to pizza.
Enter quit to finish ordering. quit
7-5 电影票 : 有家电影院根据观众的年龄收取不同的票价: 不到3岁的观众免费; 3~12岁的观众为10美元; 超过12岁的观众为15美元。 请编写一个循环, 在其中询问用户的年龄, 并指出其票价。
msg = "May you tell me your age? "

while True:
age = input(msg)
age = int(age)
if age < 3:
print("You're free of charge.")
elif age >= 3 and age <= 12:
print("You need to pay 10 dollars.")
else:
print("You need to pay 15 dollars.")
buy = input("Do you still need to buy tickets? (Y/N) ")
if buy == 'N':
print("Thank you. ")
break
示例运行:May you tell me your age? 2
You're free of charge.
Do you still need to buy tickets? (Y/N) Y
May you tell me your age? 8
You need to pay 10 dollars.
Do you still need to buy tickets? (Y/N) Y
May you tell me your age? 20
You need to pay 15 dollars.
Do you still need to buy tickets? (Y/N) N
Thank you.7-6 三个出口 : 以另一种方式完成练习7-4或练习7-5, 在程序中采取如下所有做法。
在while 循环中使用条件测试来结束循环。
使用变量active 来控制循环结束的时机。
使用break 语句在用户输入'quit' 时退出循环。
# 在while 循环中使用条件测试来结束循环。
msg = "May you tell me your age? "
buy = ''
while buy != 'N':
age = input(msg)
age = int(age)
if age < 3:
print("You're free of charge.")
elif age >= 3 and age <= 12:
print("You need to pay 10 dollars.")
else:
print("You need to pay 15 dollars.")
buy = input("Do you still need to buy tickets? (Y/N) ")
print('Thank you.\n')

# 使用变量active 来控制循环结束的时机。
active = True
while active:
age = input(msg)
age = int(age)
if age < 3:
print("You're free of charge.")
elif age >= 3 and age <= 12:
print("You need to pay 10 dollars.")
else:
print("You need to pay 15 dollars.")
buy = input("Do you still need to buy tickets? (Y/N) ")
active = True if buy == 'Y' else False
print('Thank you.\n')

# 使用break 语句在用户输入'quit' 时退出循环。
while True:
age = input(msg)
age = int(age)
if age < 3:
print("You're free of charge.")
elif age >= 3 and age <= 12:
print("You need to pay 10 dollars.")
else:
print("You need to pay 15 dollars.")
buy = input("Please enter quit if you don't want to continue. ")
if buy == 'quit':
print("Thank you.")
break
7-8 熟食店 : 创建一个名为sandwich_orders 的列表, 在其中包含各种三明治的名字; 再创建一个名为finished_sandwiches 的空列表。 遍历列表sandwich_orders , 对于其中的每种三明治, 都打印一条消息, 如I made your tuna sandwich , 并将其移到列表finished_sandwiches 。 所有三明治都制作好后, 打印一条消息, 将这些三明治列出来。
sandwich_orders = ['tuna', 'egg', 'roasted chicken']
finished_sandwiches = []
while sandwich_orders:
sandwich = sandwich_orders.pop()
print("I made your " + sandwich + " sandwich")
finished_sandwiches.append(sandwich)
print("Here're all the finished sandwiches:")
print(finished_sandwiches)结果:I made your roasted chicken sandwich
I made your egg sandwich
I made your tuna sandwich
Here're all the finished sandwiches:
['roasted chicken', 'egg', 'tuna']

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

print("Sorry, all the pastrami have been sold out today.")
while 'pastrami' in sandwich_orders:
sandwich_orders.remove('pastrami')

finished_sandwiches = []
while sandwich_orders:
sandwich = sandwich_orders.pop()
print("I made your " + sandwich + " sandwich")
finished_sandwiches.append(sandwich)
print("Here're all the finished sandwiches:")
print(finished_sandwiches)结果:Sorry, all the pastrami have been sold out today.
I made your roasted chicken sandwich
I made your egg sandwich
I made your tuna sandwich
Here're all the finished sandwiches:
['roasted chicken', 'egg', 'tuna']

7-10 梦想的度假胜地 : 编写一个程序, 调查用户梦想的度假胜地。 使用类似于“If you could visit one place in the world, where would you go?”的提示, 并编写一个打印调查结果的代码块。 results = {}
msg = "If you could visit one place in the world, where would you go? "
active = True
while active:
name = input("\nWhat's your name? ")
place = input(msg)

results[name] = place
repeat = input("Would you like to let another person respond? (yes/ no) ")
if repeat == 'no':
active = False

print("\n---Poll Results---")
for name, place in results.items():
print(name.title() + " would like to visit " + place.title() + '.')结果:What's your name? David
If you could visit one place in the world, where would you go? Tokyo
Would you like to let another person respond? (yes/ no) yes

What's your name? Alice
If you could visit one place in the world, where would you go? New York
Would you like to let another person respond? (yes/ no) yes

What's your name? Tony
If you could visit one place in the world, where would you go? Seoul
Would you like to let another person respond? (yes/ no) no

---Poll Results---
David would like to visit Tokyo.
Alice would like to visit New York.
Tony would like to visit Seoul.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: