有没有办法使这个脚本更短?

时间:2019-07-11 02:48:45

标签: python-3.x

我是一个崭新的程序员,从我所读的内容中,Python很容易学习,所以我尝试学习它。这只是我编写的一些有趣的脚本,我想知道是否可以缩短它。如果您看不出来,这实际上只是用户输入了三个变量,然后选择其中一个,重复三次,然后合并遮篷。

import random
import time

print("name three diffrent animals")
animal1 = input("1")
animal2 = input("2")
animal3 = input("3")
x = (random.randint(1,3))
if x == 1:
    x = animal1
if x == 2:
    x = animal2
if x == 3:
    x = animal3

print("name three diffrent colors")
color1 = input("1")
color2 = input("2")
color3 = input("3")
y = (random.randint(1,3))
if y == 1:
    y = color1
if y == 2:
    y = color2
if y == 3:
    y = color3

print("name three diffrent sports")
sport1 = input("1")
sport2 = input("2")
sport3 = input("3")
z = (random.randint(1,3))
if z == 1:
    z = sport1
if z == 2:
    z = sport2
if z == 3:
    z = sport3

print("your dream animal is a.....")
time.sleep(3)
print(y, ',' , z, 'playing', x,'!')

2 个答案:

答案 0 :(得分:1)

如何使用包装开箱?

print("Name three different animals: ")
animals = input("1: "), input("2: "), input("3: ")

使用choice()而不是randint()吗?

x = random.choice(animals)

然后(也许)使用f字符串进行打印?

print(f"{y} {z} playing {x}!")

答案 1 :(得分:1)

这是一个建议

# read a list of N animal names
animals = list(map(lambda i: input(str(i)), range(1, N)))

# read a small (fixed) number of animal names
animals = input("1"), input("2"), input("3")

# select a random animal from the list
x = animals[random.randint(0, len(animals) - 1)]

# or

x = random.choice(animals)