鱼C论坛

 找回密码
 立即注册
查看: 1103|回复: 9

[已解决]新手学习Python想自己写个程序用在实处,只是简单的计算遇到问题所以到论坛求救

[复制链接]
发表于 2018-6-22 09:45:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# -*- coding: utf-8 -*-
product_type = {"c1s": 0.8, "c2c": 0.3, "c2w": 0.6, "c3s": 0.7, "c4s": 0.8, "c5si": 1, "c6": 0.8,
                "c6h": 0.5, "c6tc": 0.75, "c6t": 0.85}
adress_weight = {"jzh": [5, 1], "anhui": [5, 1], "shand": [8, 4], "fujian": [8, 4], "beij": [8, 4],
                 "tianj": [8, 4], "henan": [8, 4], "hebei": [8, 4], "hunan": [8, 4],
                 "hubei": [8, 4],
                 "guangd": [8, 4], "jiangxi": [8, 4], "chongq": [10, 6], "sic": [10, 6],
                 "shangxi": [10, 6],
                 "guangxi": [10, 6], "guizhou": [10, 6], "yunnan": [10, 6], "hlj": [10, 6],
                 "liaoning": [10, 6], }
while True:
    product = input("请输入型号:\n").strip("") # 只能输入单个的型号不能多个型号或者多个数量
    if product in product_type:      
        adress = input("请输入地址:\n").replace("\'", "")
        if adress in adress_weight:
            print("计算结果:\n",
                adress_weight[adress][0] + product_type[product] *
                adress_weight[adress][1])
            print("\n\n")
        else:
            print("输入的型号错误请重新输入:\n") # 如果输错直接返回到输入型号,不方便
    else:
        print("输入的型号错误请重新输入:\n")

最佳答案
2018-6-22 09:54:43
1 对输入的数据进行分析,如果有分隔符,那么用split方法分开不同的型号得到一个列表,然后分别处理该列表中的元素即可

2 设置一个循环,比如
while address not in address_weight:
        address = input('输入错误,请重新输入:')
print('计算结果...')
...
QQ截图20180622094009.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-6-22 09:46:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-6-22 09:47:32 | 显示全部楼层
怎么去优化呢解决这两个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 09:50:35 | 显示全部楼层
第一次发帖...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-22 09:52:17 | 显示全部楼层
循环里加个break就可以跳出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-22 09:54:43 | 显示全部楼层    本楼为最佳答案   
1 对输入的数据进行分析,如果有分隔符,那么用split方法分开不同的型号得到一个列表,然后分别处理该列表中的元素即可

2 设置一个循环,比如
while address not in address_weight:
        address = input('输入错误,请重新输入:')
print('计算结果...')
...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 10:12:22 | 显示全部楼层
BngThea 发表于 2018-6-22 09:54
1 对输入的数据进行分析,如果有分隔符,那么用split方法分开不同的型号得到一个列表,然后分别处理该列表 ...

好的我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 10:12:55 | 显示全部楼层
alltolove 发表于 2018-6-22 09:52
循环里加个break就可以跳出了

谢谢我试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 14:30:56 | 显示全部楼层
BngThea 发表于 2018-6-22 09:54
1 对输入的数据进行分析,如果有分隔符,那么用split方法分开不同的型号得到一个列表,然后分别处理该列表 ...

第一个问题还是解决不了,怎么做啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 14:31:44 | 显示全部楼层
BngThea 发表于 2018-6-22 09:54
1 对输入的数据进行分析,如果有分隔符,那么用split方法分开不同的型号得到一个列表,然后分别处理该列表 ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 05:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表