|
Week3 Exceptions
Fuel Gauge
题目描述:
输入分数字符串,判断并输出相应的百分数;特例不足1%输出E,超出99%输出F
思路:
1,从字符串中取出x,y;
2,按题中要求计算输出;
题解:
- while True:
- try:
- ## 取出x,y
- x, z, y= input("Fraction: ")
- x, y = int(x), int (y)
-
- ##防止出错
- if y == 0:
- raise ZeroDivisionError
- if x > y:
- raise ValueError
- break
- except(ValueError, ZeroDivisionError):
- pass
- ## 模拟题
- if 0 < x/y < 0.99:
- print(f"{round(x/y*100)}%")
- elif x/y >= 0.99:
- print("F")
- else:
- print("E")
复制代码 Felipe’s Taqueria
题目描述:
根据用户输入的信息,匹配菜单价格,最终算出最终价格。
题解:
- ## 菜单信息
- menu = {
- "Baja Taco": 4.00,
- "Burrito": 7.50,
- "Bowl": 8.50,
- "Nachos": 11.00,
- "Quesadilla": 8.50,
- "Super Burrito": 8.50,
- "Super Quesadilla": 9.50,
- "Taco": 3.00,
- "Tortilla Salad": 8.00,
- }
- ##total:结果
- total = 0
- ## 计算输出
- while True:
- try:
- ## title(): 首字母大写其余小写
- item = input("Item: ").title()
- if item in menu:
- total += menu[item]
- print(f"Total: ${total:.2f}")
- except EOFError:
- print()
- break
复制代码 Grocery List
题目描述:
记录用户输入商品,最终输出已输入的商品以及商品数量;
题解:
- ## 存储商品信息
- list = {}
- while True:
- ## 输入处理
- try:
- ## upper():字符串大写
- item = input("").upper()
- except EOFError:
- print()
- break
-
- ## 记录商品
- if item in list:
- list[item] += 1
- else:
- list[item] = 1
- ## 输出结果
- for item, cnt in sorted(list.items()):
- print(f"{cnt} {item}")
复制代码 Outdated
题目描述:
用户输入9/8/1636,September 8, 1636形式,系统转换输出1636-09-08;若用户输出其他形式抛异常。
题解:
[code]## 月份记录months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]##思路:分情况讨论while True: date = input("Date: ") month,day,year = "", "", "" try: ## 9/8/1636 if len(date.split("/")) == 3: date = date.split("/") month, day, year = map(int, date) ## September 8, 1636 else: date = date.split(",") if len(date) == 2: month, day = date[0].split() month = months.index(month)+1 day, year = int(day), int(date[1]) ##输出 if 1 |
|