第七章作业
7-1 汽车租赁 : 编写一个程序, 询问用户要租赁什么样的汽车, 并打印一条消息, 如“Let me see ifI can find you a Subaru”。
7-2 餐馆订位 : 编写一个程序, 询问用户有多少人用餐。 如果超过8人, 就打印一条消息, 指出没有空桌; 否则指出有空桌。
7-3 10的整数倍 : 让用户输入一个数字, 并指出这个数字是否是10的整数倍。
答:7-1
prompt = 'What kind of car would you like to rent?' car = input(prompt) print(' “Let me see ifI can find you a ' + car + '”。') 输出: What kind of car would you like to rent?Subaru “Let me see ifI can find you a Subaru”。
7-2
number = input('How many people are eating?') number = int(number) if number >= 9: print(' There have not tables') else: print(' There have a table') 输出: How many people are eating?8 There have a table
7-3
方法1
number = input('Please input a diget:') number = int(number)#,有这个不行啊,为什么呢 if number % 10 == 0:#这里的number带()的 print(str(number) + ' 这个数字是10的整数倍') else: print(str(number) + ' 这个数字不是10的整数倍')#这里的number 要加str 输出: Please input a diget:5 5 这个数字不是10的整数倍
方法2
number = input('Please input a diget:') #number = int(number),有这个不行啊,威慑呢么 if int(number) % 2 == 0:#这里的number带()的 print(number + ' 这个数字是10的整数倍') else: print(number + ' 这个数字不是10的整数倍') 输出; Please input a diget:5 5 这个数字不是10的整数倍
7-4 比萨配料 : 编写一个循环, 提示用户输入一系列的比萨配料, 并在用户输入' quit' 时结束循环。 每当用户输入一种配料后, 都打印一条消息, 说我们会在比萨
中添加这种配料。
7-5 电影票 : 有家电影院根据观众的年龄收取不同的票价: 不到3岁的观众免费; 3~12岁的观众为10美元; 超过12岁的观众为15美元。 请编写一个循环, 在其中询问用
户的年龄, 并指出其票价。
7-6 三个出口 : 以另一种方式完成练习 7-4或练习 7-5, 在程序中采取如下所有做法。
在while 循环中使用条件测试来结束循环。
使用变量active 来控制循环结束的时机。
使用break 语句在用户输入' quit' 时退出循环。
7-7 无限循环 : 编写一个没完没了的循环, 并运行它(要结束该循环, 可按Ctrl +C, 也可关闭显示输出的窗口) 。
7-4
prompt = " Please Enter a series of pizza toppings: " prompt += " We will add this ingredient to our pizza. " message = '' while message != 'quit': message = input(prompt) if message != 'quit': print(message) 输出; Please Enter a series of pizza toppings: We will add this ingredient to our pizza. banana banana Please Enter a series of pizza toppings: We will add this ingredient to our pizza. chese chese Please Enter a series of pizza toppings: We will add this ingredient to our pizza. quit
7-5
print('Cinemas will receive different fares based on viewer age:') tickets = ' Please,tell me how old are you:' age = '' active = True while age != 'quit': age = input(tickets) if age == 'quit': active = False elif int(age) < 3: print('free') elif int(age) < 12: print(10) else: print(15) 输出: Cinemas will receive different fares based on viewer age: Please,tell me how old are you:2 free Please,tell me how old are you:10 10 Please,tell me how old are you:15 15 Please,tell me how old are you:quit
7-6 用break语句:
print('Cinemas will receive different fares based on viewer age:') tickets = ' Please,tell me how old are you:' age = '' while True: age = input(tickets) if 'quit'in age: print('quit') break elif int(age) < 3: print('free') elif int(age) < 12: print(10) else: print(15) 输出: Cinemas will receive different fares based on viewer age: Please,tell me how old are you:2 free Please,tell me how old are you:16 15 Please,tell me how old are you:quit quit
7-7
active = True while active: print('hello world')
7-8 熟食店 : 创建一个名为sandwich_orders 的列表, 在其中包含各种三明治的名字; 再创建一个名为finished_sandwiches 的空列表。 遍历列
表sandwich_orders , 对于其中的每种三明治, 都打印一条消息, 如I made your tuna sandwich , 并将其移到列表finished_sandwiches 。 所有三明
治都制作好后, 打印一条消息, 将这些三明治列出来。
7-9 五香烟熏牛肉( pastrami) 卖完了 : 使用为完成练习 7-8而创建的列表sandwich_orders , 并确保' pastrami' 在其中至少出现了三次。 在程序开头附近添加
这样的代码: 打印一条消息, 指出熟食店的五香烟熏牛肉卖完了; 再使用一个while 循环将列表sandwich_orders 中的' pastrami' 都删除。 确认最终的列
表finished_sandwiches 中不包含' pastrami' 。
7-10 梦想的度假胜地 : 编写一个程序, 调查用户梦想的度假胜地。 使用类似于“Ifyou could visit one place in the world, where would you go?”的提示, 并编写一个打印调查
结果的代码块。
7-8
sandwich_orders = ['guita','chess','banana'] finished_sandwiches= [] while sandwich_orders: current_sandwich = sandwich_orders.pop() print('I made your tuna ' + current_sandwich) finished_sandwiches.append(current_sandwich) print('所有三明治都制作好了') for current_sandwich in finished_sandwiches: print(current_sandwich) 输出; I made your tuna banana I made your tuna chess I made your tuna guita 所有三明治都制作好了 banana chess guita
7-9
sandwich_orders = ['guita','pastrami','chess','pastrami','banana','pastrami' ] print('熟食店的五香烟熏牛肉(pastrami)都卖完了') while 'pastrami' in sandwich_orders:#一定要注意空格,错了好多次了 sandwich_orders.remove('pastrami')#必须加括号啊 print(sandwich_orders) 输出; 熟食店的五香烟熏牛肉(pastrami)都卖完了 ['guita', 'chess', 'banana']
7-10
responses = {} dream_resort = True while dream_resort: name = input(" What is your name? ") response = input('“Ifyou could visit one place in the world, where would you go?”') responses[name] = response #这将答卷存储在字典中,如果是responses[response] = name,就是字典中键与值颠倒过来
repeat = input("Would you like to let another person respond? (yes/ no) ")#这有了这个input就不算等于啊,算等待输入 if repeat == 'no' : dream_resort = False print(" --- Poll Results ---") for name,response in responses.items(): print(name + "would like visit " + response + "in the world . ") 输出:What is your name? 曹富 “Ifyou could visit one place in the world, where would you go?”长城 Would you like to let another person respond? (yes/ no) yes What is your name? 曹辉 “Ifyou could visit one place in the world, where would you go?”家 Would you like to let another person respond? (yes/ no) no --- Poll Results --- 曹富would like visit 长城in the world . 曹辉would like visit 家in the world .
证明responses[name] = response,这是一种将信息储存到列表中的形式
responses = {} name = 'ni'#Python中的key 不可以是 list类型 因为 list是可变的 不能被hash response = ['ta'] responses[name] = response print(responses)
输出:
{'ni': ['ta']}