当前位置: 首页 > 知识库问答 >
问题:

使用更好的条件缩短Python中的长if-else检查

章绪
2023-03-14

我正在写一个Python程序,在这里我需要一个if-ther案例来选择1和9之间的一个数字,每个数字都被分配给一个类。关于如何缩短这段代码的任何建议?

import randint

variable1 = randint(1, 9)
if variable1 >= 9:
  print ("Your class is Tiefling") 
else: 
  if variable1 >= 8: 
    print ("Your class is Half-Orc") 
  else: 
    if variable1 >= 7: 
      print ("Your class is Half-Elf") 
    else:
      if variable1 >= 6: 
        print ("Your class is Gnome")
      else:
        if variable1 >= 5:
          print ("Your class is Dragonborn") 
         else: 
           if variable1 >= 4:
            print ("Your class is Human") 
          else:
            if variable1 >= 3:
              print ("Your class is Halfling") 
            else:
              if variable1 >= 2: 
                print ("Your class is Elf") 
              else:
                if variable1 >= 1:
                  print ("Your class is Dwarf")

共有3个答案

蔚俊人
2023-03-14

使用字典的不完整版本:

val_msg = {3: 'Your class is Halfling',
           2: 'Your class is Elf',
           1: 'Your class is Dwarf'}

from random import randint

variable1 = randint(1, 3)
print(val_msg[variable1])

请注意,randint生成我用作字典键的整数。

如果您需要做更复杂的事情,您可以将函数放入字典并调用它们(当然,您也可以使用这里基于列表的解决方案执行相同的操作):

def do_halfling_stuff():
    print('Your class is Halfling')
def do_elf_stuff():
    print('Your class is Elf')
def do_dwarf_stuff():
    print('Your class is Dwarf')

val_func = {3: do_halfling_stuff,
            2: do_elf_stuff,
            1: do_dwarf_stuff}


variable1 = randint(1, 3)
func = val_func[variable1]
func()

卢杰
2023-03-14

我希望这有帮助!

import random 
classList = ['Dwarf','Elf','Halfling','Human','Dragonborn','Gnome','Half-Elf','Half-Orc','Tiefling'] 
print 'Your class is ' + random.choice(classList)
闻人凯泽
2023-03-14

使用列表的示例

import random

classes = ['Tiefling', 'Half-Orc', 'Half-Elf', '...']

print('Your class is ' + classes[random.randrange(len(classes))])

根据亚历克西斯的评论编辑的。

 类似资料:
  • 我目前正在了解React Native中的if-else if-else语句的语法。下面是我理解的一个简单的if-else条件: 但是,当添加另一个条件来生成if-else if-else语句时,我遇到了问题。 如果有人能指出我的缺点,我将不胜感激!

  • 主要内容:if else 如何判断表达式是否成立前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条……一直到最后一条语句,这称为 顺序结构。 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用。这时候程序就需要做出判断,看用户是否是成年人,并给出提示。 在 Python 中,可以使用 if else 语句对条件进行判断,然后根据不同的结果执行不同的代码,这称

  • 我有一个要求,取决于地图的特定键值,我需要格式化输出。 例如,如果它的值大于1,那么只需要在值(12.23)后面显示2个小数点,或者如果它的值小于1,我需要在它后面显示4个小数点。 我已经编写了代码,它工作正常,但我正在寻找一种更好的方法来做到这一点(基本上我不喜欢我的代码中的其他条件) 这是我的程序,根据最后一个属性键值,我正在格式化输出

  • Go语言的条件判断结构也很简单。 package main import "fmt" func main() { // 基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4

  • 我有一个简单的角度/html代码,其中有一个表,每个

  • 主要内容:不要忘记缩进,缩进多少合适?,所有语句都要缩进,同一代码块缩进量要相同,不要随便缩进前面的《 Python if else》一节展示了选择结构的三种基本形式,并给出了实例演示,但是大家在编写代码过程中仍然要注意一些细节,尤其是代码块的缩进,这对 if else 选择结构极其重要。 Python 是以缩进来标记代码块的,代码块一定要有缩进,没有缩进的不是代码块。另外,同一个代码块的缩进量要相同,缩进量不同的不属于同一个代码块。 不要忘记缩进 if、elif 和 else 后面的代码