【问题标题】:Trying to print more than one letter when user inputs with more than one当用户输入多个字母时尝试打印多个字母
【发布时间】:2020-08-20 17:26:15
【问题描述】:
# these are replaced with regular characters for brevity, but are multi-line
# ascii art strings in the original codebase.
a_ascii_art = "A"
b_ascii_art = "B"

x = input("What would you like to print? ")
if x == "a": print(a_ascii_art)
if x == "b": print(b_ascii_art)

我希望它能够在调用时同时打印 A 和 B。但也要让它井井有条 我该怎么做?

【问题讨论】:

  • 请在问题中包含所有代码。
  • 我确实点击了链接
  • @Hylian StackOverflow 不允许使用代码图片。

标签: python python-3.x


【解决方案1】:

在 Python 中,您可以这样做来检查子字符串是否位于给定字符串中:

if "a" in x:
  #do a things
if "b" in x:
 #do b thins

【讨论】:

  • 我刚刚遇到堆栈溢出,如何将python放入其中
  • 好吧,如果我输入 ba 它仍然显示 AB,我该如何让它按顺序运行
  • 要在其中两个 ``` 之间发布代码,然后它将以那个花哨的背景显示。
  • 要显示它们,您必须循环输入for letter in x,然后检查该字母是a还是b
  • 我不知道怎么循环,我上周才开始。
【解决方案2】:

您可以检查每个字母是否用户输入,而不是检查它用户输入。

if "a" in x:
    print(a_ascii_art)

if "b" in x:
    print(b_ascii_art)

或者,您可以遍历用户输入并检查每一个。在这种情况下,您可能应该将“打印”代码包装在一个函数中以便于阅读。

def print_char(ch: str):
    if ch == 'a':
        print(a_ascii_art)
    if ch == 'b':
        print(b_ascii_art)
    # if you have many of these, consider creating a dictionary like
    #   letters = {'a': a_ascii_art,
    #       'b': b_ascii_art,
    #       'c': c_ascii_art,
    #      ... }
    # and instead use dict.get
    #   art = letters.get(ch)
    #   if art: print(art)

for char in x:
    print_char(char)

【讨论】:

  • 这行得通,但是如果我想输入 B A 它不按顺序输入怎么办
  • @Hylian 仔细想想你代码中的逻辑,我敢打赌你能弄明白 :)
猜你喜欢
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2016-08-20
  • 1970-01-01
  • 2023-02-05
  • 1970-01-01
相关资源
最近更新 更多