【问题标题】:How to print a quote based on the inputed Zodiac Sign with Python?如何使用 Python 根据输入的星座打印报价?
【发布时间】:2020-12-16 14:00:14
【问题描述】:

我正在进行控制台性格测试,我想为输入的玩家生肖打印报价。我不想使用大量的if 语句,我可以用字典和循环来做到这一点吗?

其中键是星座,值是特定的引号,然后使用循环和简短的 if 语句将键与给定的输入循环并打印相应的值,即引号。

这是我的代码:

sign = input("What is your zodiac sign ? (Enter one of these: aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces )  ---> ")


zodiac_signs = {
  "aries": "quote", 
  "taurus": "quote", 
  "gemini": "quote", 
  "cancer": "quote", 
  "leo": "quote", 
  "virgo": "quote", 
  "libra": "quote", 
  "scorpio": "quote", 
  "sagittarius": "quote", 
  "capricorn": "quote", 
  "aquarius": "quote", 
  "pisces": "quote"
  }

接下来我该怎么做?

【问题讨论】:

    标签: python python-3.x python-2.7 loops dictionary


    【解决方案1】:

    你可以从字典中得到生肖

    sign = input("What is your zodiac sign ? (Enter one of these: aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces ) ---> ")
    
    zodiac_signs = { "aries": "quote", "taurus": "quote", "gemini": "quote", "cancer": "quote", "leo": "quote", "virgo": "quote", "libra": "quote", "scorpio": "quote", "sagittarius": "quote", "capricorn": "quote", "aquarius": "quote", "pisces": "quote" }
    
    try:
        print(zodiac_signs[sign])
    except(Exception e):
        print("That's not a zodiac sign")
    

    【讨论】:

      【解决方案2】:

      根据 Challe 所说,您可能还希望输入小写,以便键匹配,即使它们使用大写作为第一个字母。

      【讨论】:

      • python可以帮我做吗?我只是警告玩家只输入小写字母..
      • 是的。你可以用 .lower() 来做 你把它放在输入行的末尾或者做一个不同的变量,比如 lowered_sign = sign.lower()
      【解决方案3】:

      Python 字典有一个专门针对这个问题的 get 方法。

      print(zodiac_signs.get(sign, "That's not a zodiac sign"))
      

      如果给定键在dict 中,则返回给定键的值,否则返回给定的默认参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        • 2018-02-19
        • 1970-01-01
        • 1970-01-01
        • 2017-08-09
        • 2018-01-26
        • 1970-01-01
        相关资源
        最近更新 更多