Запуск различных функций на основе ввода пользователя - PullRequest
0 голосов
/ 14 ноября 2018

Я новичок в Pycharm и Python в целом, и для своего первого проекта я решил сделать произвольный селектор имени / объекта, который выбирает имя из заранее созданной переменной букв и печатает результат.Я хотел бы расширить это и попросить пользователя либо использовать имена по умолчанию в коде, либо добавить свои собственные имена для использования.Я приложил все усилия, но когда дело дошло до сценария, выполняющего одну из двух функций, я не смог понять, как это сделать.Любая помощь?

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())

1 Ответ

0 голосов
/ 14 ноября 2018

Ваш код довольно странный, и я не уверен, чего вы пытаетесь достичь.

  • вы определяете две функции generator; Вы должны дать им разные имена
  • вместо выбора одной из букв и последующего выбора «длинного» имени соответственно, просто выберите из списка имен в первую очередь
  • вы можете использовать список для различных введенных пользователем имен

Я бы предложил использовать что-то вроде этого:

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())
...