嵌套if语句只会触发python 3.5.2中的top if语句

嵌套if语句只会触发python 3.5.2中的top if语句,python,if-statement,nested,Python,If Statement,Nested,这是我的节目。它的全部前提是,它应该是一个由输入和添加到字符串中的故事: from random import * pribeh = str(input("Vyber si typ príbehu.\n\n A - Invázia\n B - Návšteva\n C - Obed\n ")) if pribeh == "A" or "a": meno1 = str(input("Zadaj meno\n")) pribehA1 = ("Jedného dna som st

这是我的节目。它的全部前提是,它应该是一个由输入和添加到字符串中的故事:

from random import *

pribeh = str(input("Vyber si typ príbehu.\n\n A - Invázia\n B - Návšteva\n C - Obed\n "))

if pribeh == "A" or "a":

    meno1 = str(input("Zadaj meno\n"))
    pribehA1 = ("Jedného dna som stanoval s mojim kamarátom " + meno1 + ".")
    farba1 = str(input("Zadaj farbu (v dátive, ženský rod)\n"))
    pribehA2 = ("Zrazu sme videli svetlo " + farba1 + " farby.")
    velkost1 = str(input("Zadaj velkost\n (VELKÁ(A), ALEBO MALÁ?(B), v inštrumentáli, ženský rod)\n"))

    if velkost1 == "A" or "a":
        velkost1 = 50
        pribehA3 = ("Zo svetla sa vynorila postava s velkou hlavou.")
    elif velkost1 == "b" or "B":
        velkost1 = 10
        pribehA3 = ("Zo svetla sa vynorila postava s malou hlavou.")
    sloveso1 = str(input("Vyber sloveso\n (C) - utekat\n (D) - schovat\n"))

    if sloveso1 == "A" or "a":
                    pribehA4 = ("Cudný tvor nás vydesil, tak sme sa rozhodli utekat.")
                    lokalita1 = str(input("Zadaj miesto (v akuzatíve)\n"))
                    pribehA5 = ("Utiekli sme na " + lokalita1 + ".")
    elif sloveso1 == "B" or "b":
                    pribehA4 = ("Cudný tvor nás vydesil, tak sme sa rozhodli schovat.")
                    lokalita1 = str(input("Zadaj miesto (v akuzatíve\n)"))
                    pribehA5 = ("Po schovávani sme už tvora nevideli. Všetko sme zbalili a odišli na " + lokalita1 + ".\n")

    print(pribehA1)
    print(pribehA2)
    print(pribehA3)
    print(pribehA4)
    print(pribehA5)
    print("Nakoniec som sa zobudil sám doma. Teraz sa seba pýtam, je to co sa stalo realitou, alebo len bujný sen?")

else:

    mesto = str(input("Zadaj mesto (lokál)\n"))
    podm1 = str(input("Zadaj podstatné meno\n"))
    podm2 = str(input("Zadaj podstatné meno\n"))
    hobby = str(input("Zadaj hobby\n"))
    pridm = str(input("Zadaj prídavné meno\n"))

    print("Na výlete v " + mesto + "som navštívil môjho strýka.")
    print("Strýko mal v jeho dome mnoho ozdôb ako napríklad "+ podm1 +".")
    print("Casto krát mi hovoril rady z jeho životnej skúsenosti ako napríklad, že nemám jest "+ podm2+".")
    print("Jeho oblubene hobby je " + hobby + "." )
    print("Osobne si myslím, že môj strýko je velmi" + pridm +"clovek.")

在您的情况下,有条件的备选方案:

velkost1 == "A" or velkost1 == "a"
velkost1 in ["A", "a"]
velkost1.lower() == "a"
velkost1.upper() == "A"
在您的情况下,
velkost1==“A”或“A”

  • 第一个条件:
    velkost1==“A”
    可以是
    True
    False
    ,具体取决于
    velkost1
  • 第二个条件:
    “a”
    ,它将始终为
由于这两种情况之间的
操作,输出将始终为
True

退出或继续

pribeh = str(input("Vyber si typ príbehu.\n\n A - Invázia\n B - Návšteva\n C - Obed\n "))
while pribeh.lower() in ['A', 'B', 'C']:
    if pribeh == "A" or "a":
        # do something
    else:
        # do something
    pribeh = str(input("Vyber si typ príbehu.\n\n A - Invázia\n B - Návšteva\n C - Obed\n "))

现在,程序只会执行,如果用户输入的字母不是“a”、“b”或“c”,在while循环结束时,我们再次获取用户输入,基本上他可以从那里继续输入“a”、“b”或“c”,并可以通过输入任何其他字符退出。

这与您认为的情况不同
velkost1==“a”或“a”
这永远是正确的。输入已经是字符串,您可以减少不检查大小写的条件。我应该用什么替换它?有什么好的选择吗?@Mckay
if-pribeh.lower()=“a”:…
对于不区分大小写的匹配,如果pribeh-in(“a”,“a”):…对于多个匹配。你的其他情况也是一样。非常感谢你,我现在很高兴。我已经很喜欢这个网站了。因为他是一个初学者,我建议他做些修改并展示一些正确的代码。我的想法是一样的,但因为他是一个初学者,这就是为什么我发布了错误以及可能的解决方案。现在一切都正常了。我只需要输入某人是否想要退出,或者完全重新启动整个过程,如果可能的话请选中我的编辑,通过这种方式,您将能够实现退出/继续功能。如果这解决了您的问题,请将其标记为正确答案。