13728383860 发表于 2023-4-7 19:08:04

新手,希望方法不要太高深,用循环

题目描述

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

apple
pear
orange
grape
exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。


输入

输入在一行中给出用户连续输入的若干个编号。



输出

首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

歌者文明清理员 发表于 2023-4-7 19:11:45

本帖最后由 歌者文明清理员 于 2023-4-7 19:13 编辑

menu = {1: 3.00, 2: 2.50, 3: 4.10, 4: 10.20}# 水果单价
count = 0# 连续查询次数
while True:
    print(" apple\n pear\n orange\n grape\n exit")# 显示菜单
    choice = int(input())# 用户输入编号
    if choice in menu:# 如果是有效的编号
      print("price = {:.2f}".format(menu))# 输出价格
      count += 1# 连续查询次数加1
    elif choice == 0:
      break# 退出程序
    else:# 输入其他编号
      print("price = 0.00")
      count += 1# 连续查询次数加1
      if count >= 5:# 连续查询次数超过5次
            break# 退出程序

sfqxx 发表于 2023-4-7 19:13:07


# 首先输出菜单print(" apple\n pear\n orange\n grape\n exit")

# 初始化计数器和价格字典
count = 0
prices = {"1": 3.00, "2": 2.50, "3": 4.10, "4": 10.20}

# 循环输入查询,直到超过5次或者输入0
while count < 5:
    choice = input()
    if choice == "0":
      break
    elif choice in prices:
      price = prices
      print("price = {:.2f}".format(price))
      count += 1
    else:
      print("price = 0.00")



注意事项:

- 需要使用格式化字符串来输出价格,其中`{:.2f}`表示保留两位小数的浮点数。
- 使用字典存储每种水果的价格,可以通过键来访问对应的值。
有用请设置最佳答案

isdkz 发表于 2023-4-7 19:28:08

本帖最后由 isdkz 于 2023-4-7 19:32 编辑

def main():
    # 定义一个菜单字典,键表示编号,值表示水果名称
    menu = {
      1: 'apple',
      2: 'pear',
      3: 'orange',
      4: 'grape',
      0: 'exit'
    }

    # 定义一个价格字典,键表示水果名称,值表示对应的价格
    prices = {
      'apple': 3.00,
      'pear': 2.50,
      'orange': 4.10,
      'grape': 10.20,
    }
   
    # 初始化查询次数为0
    query_count = 0

    # 显示菜单
    for key, value in menu.items():
      print(f'[{key}] {value}')
   
    # 当查询次数小于5次时,持续接受用户输入
    while query_count < 5:
      # 接受用户输入的编号,并以空格分割
      input_numbers = input().split()
      
      # 查询次数加1
      query_count += 1
      
      # 遍历输入的编号
      for number in input_numbers:
            # 如果输入的编号为0,将查询次数设为5,结束循环
            if int(number) == 0:
                query_count = 5
                break

            # 根据编号查询水果名称
            fruit = menu.get(int(number), None)
            
            # 如果找到了对应的水果名称,从价格字典中查询对应的价格,否则价格为0
            if fruit:
                price = prices.get(fruit, 0.00)
            else:
                price = 0.00

            # 输出查询到的价格,保留两位小数
            print(f'price = {price:.2f}')

# 主函数入口
if __name__ == "__main__":
    main()


这个Python代码可以实现题目的要求。先定义一个菜单menu和对应的价格prices,然后遍历输入的编号,

根据编号查询菜单和价格。输入若干个编号,当连续查询次数超过5次、或主动输入0时,程序结束。

歌者文明清理员 发表于 2023-4-7 19:31:01

isdkz 发表于 2023-4-7 19:28
这个Python代码可以实现题目的要求。先定义一个菜单menu和对应的价格prices,然后遍历输入的编号,

...

看第十七行的
# Display menu原来你用的是英文chatgpt?分享下网址呗

isdkz 发表于 2023-4-7 19:36:51

歌者文明清理员 发表于 2023-4-7 19:31
看第十七行的
原来你用的是英文chatgpt?分享下网址呗

我是用的这个 ai.com ,要访问还得有点手段{:10_256:}

歌者文明清理员 发表于 2023-4-7 19:41:37

isdkz 发表于 2023-4-7 19:36
我是用的这个 ai.com ,要访问还得有点手段

你单独发一个主题说,估计可以精华!

isdkz 发表于 2023-4-7 19:42:47

歌者文明清理员 发表于 2023-4-7 19:41
你单独发一个主题说,估计可以精华!

额。。。估计牢底坐穿才对{:10_277:}

歌者文明清理员 发表于 2023-4-7 19:45:37

isdkz 发表于 2023-4-7 19:42
额。。。估计牢底坐穿才对

什么意思

isdkz 发表于 2023-4-7 19:49:11

歌者文明清理员 发表于 2023-4-7 19:45
什么意思

这个网络技术懂的都懂,不能随便宣扬

isdkz 发表于 2023-4-7 23:50:25

???我楼上那个答案没有满足题目要求呀,都不验证一下的吗?

sfqxx 发表于 2023-4-8 10:16:38

isdkz 发表于 2023-4-7 23:50
???我楼上那个答案没有满足题目要求呀,都不验证一下的吗?

你都抢了我好几个最佳答案了{:10_266:}

isdkz 发表于 2023-4-8 10:38:54

sfqxx 发表于 2023-4-8 10:16
你都抢了我好几个最佳答案了

你的答案没有满足要求我就不服{:10_256:}

sfqxx 发表于 2023-4-8 10:39:15

isdkz 发表于 2023-4-8 10:38
你的答案没有满足要求我就不服

{:10_324:}

歌者文明清理员 发表于 2023-4-8 15:57:26

sfqxx 发表于 2023-4-8 10:16
你都抢了我好几个最佳答案了

明明我先的

sfqxx 发表于 2023-4-8 16:05:51

歌者文明清理员 发表于 2023-4-8 15:57
明明我先的

只给了代码没有说思路{:10_256:}

歌者文明清理员 发表于 2023-4-8 16:15:25

sfqxx 发表于 2023-4-8 16:05
只给了代码没有说思路

我的chatgpt不肯说思路,一遍遍地说代码,还没有缩进{:10_282:}

sfqxx 发表于 2023-4-8 16:16:03

歌者文明清理员 发表于 2023-4-8 16:15
我的chatgpt不肯说思路,一遍遍地说代码,还没有缩进

{:10_284:}
页: [1]
查看完整版本: 新手,希望方法不要太高深,用循环