运行 基于用户输入的不同功能

Running different functions based on the user's input

我是 Pycharm 和 Python 的新手,对于我的第一个项目,我决定做一个随机的 name/object 选择器,它从制作字母变量并打印结果。 我想对此进行扩展,让用户在代码中使用默认名称或添加他们自己的名称以供使用。 我尽了最大的努力,但是当涉及到两个函数的脚本 运行 1 时,我无法弄清楚如何做到这一点。 有帮助吗?

import string
import random
import os

letters = 'wjsdc' #*Default letters*
choice = random.choice(letters)

decision = input("Hello, use default? y/n")
print("You have chosen " + decision + ", Running function.")

def generator():
if decision == "y":        #*Default function*
    choice = random.choice(letters)
    print("Name chosen is " + generator())
elif decision == "n":       #*Attempted new function*
    new_name1 = input("Please add a name")
    new_name2 = input("Please add a name")
    new_name3 = input("Please add a name")
    new_name4 = input("Please add a name")
    new_name5 = input("Please add a name")
    if choice == "w":
        finalname = new_name1
    elif choice == "j":
        finalname = new_name2
    elif choice == "s":
        finalname = new_name3
    elif choice == "c":
        finalname = new_name4
    elif choice == "d":
        finalname = new_name5
    name = finalname
    return name
print("Name chosen is " + name)

def generator():        #*Default function script*
    if choice == "w":
        finalname = "Wade"
    elif choice == "j":
        finalname = "Jack"
    elif choice == "s":
        finalname = "Scott"
    elif choice == "d":
        finalname = "Dan"
    elif choice == "c":
        finalname = "Conall"
    name = finalname
    return name

print("Name chosen is " + generator())

你的代码很奇怪,我不确定你想要实现什么。

  • 你定义了两个函数generator;你应该给他们不同的名字
  • 不是从其中一个字母中选择然后相应地选择 "long" 名字,而是首先从名字列表中选择
  • 您可以为不同的用户输入的名称使用一个列表

我建议使用这样的东西:

import random

def generate_name():
    names = "Wade", "Jack", "Scott", "Dan", "Conall"
    decision = input("Use default names? Y/n ")
    if decision == "n":
        print("Please enter 5 names")
        names = [input() for _ in range(5)]
    return random.choice(names)

print("Name chosen is " + generate_name())