首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许用户输入两个参数

允许用户输入两个参数
EN

Stack Overflow用户
提问于 2019-08-03 08:42:17
回答 4查看 87关注 0票数 1

我希望允许用户能够键入{国家}的{misc},并根据输入显示特定的信息。我已经尝试了几种不同的方法,但似乎从未找到一种方法来使其工作。感谢您的帮助!

(关于标题很抱歉,我真的不知道该给它起什么标题)

代码语言:javascript
复制
def part1():
    txt = "{} of {}"
    info = input('''What do you want to know?: ''')
    if info == "{} of {}":
        print(txt.format(misc.get(info), nations.get(info)))
    else:
         print("i dont know what your talking about")
nations = {
    'fiji': {
        'location': 'Oceana',
        'capital_city': 'Suva'},
    'france': {
        'location': 'Europe',
        'capital_city': 'Paris'},
}

  misc = {'population': {'fiji': '847,706',
  'france': '60,495,540'},
'location': {'fiji': 'Oceana',
  'france': 'Europe'},
}
part1()
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-03 09:01:44

我不确定你到底想做什么,但是你的代码有一些问题,试着这样做:

代码语言:javascript
复制
def part1():
    txt = "{} of {}"
    info = input('''What do you want to know?: ''')
    if ' of ' in info:
        params = info.split(' of ')
    else:
         print("i dont know what your talking about")
         return

    print(params[0])
    print(misc.get(params[0]).get(params[1]))

nations = {
    'fiji': {
        'location': 'Oceana',
        'capital_city': 'Suva'},
    'france': {
        'location': 'Europe',
        'capital_city': 'Paris'},
}

misc = {'population': {'fiji': '847,706',
  'france': '60,495,540'},
'location': {'fiji': 'Oceana',
  'france': 'Europe'},
}
part1()

目前,使用此代码并不能真正知道您的目标是哪个对象(国家或其他)。为了纠正这个问题,我会问用户一个初始问题,以确定他们想要哪种类型的信息。

其他改进可能是检查您从字典中获得的数据。如果你从字典中得不到任何信息(.get返回None),你可以通知用户你有可用的信息)。

票数 3
EN

Stack Overflow用户

发布于 2019-08-03 08:57:59

如果您使用的数据不多,一种快速而棘手的方法是将信息直接放入if语句并调用函数。例如:

代码语言:javascript
复制
def part1():
info = input("What do you want to know?: ")
if info == "location of fiji":
    print("Oceana:")
elif info == "capital_city of fiji":
    print("Suva")
elif info == "location of France":
    print("Europe")
elif info == "capital_city of France":
    print("Paris")
else:
     print("i dont know what your talking about")                              

part1()

如果你正在使用大量的数据点,那么像你这样拥有一个列表/数据库可能会更好。不过,如果你想要的话,这里有一个快速而又肮脏的解决方案。(此外,如果您使用此方法,您可以使用.lower将用户输入字符串转换为全小写。这样,在输入时大小写无关紧要)。

票数 1
EN

Stack Overflow用户

发布于 2019-08-03 09:36:38

这样做的一个好方法是使用if else/elif语句,这样程序就可以检查多个输入,而不是试图一次检查两个不同的输入。

Viktor Basharkevich在做什么方面有很好的想法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57334715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档