python-3.x 无法正确定义函数[关闭]

juud5qan  于 2023-11-20  发布在  Python
关注(0)|答案(1)|浏览(109)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
14天前关门了。
Improve this question
任务如下:创建一个程序,询问用户的出生年份和姓名。程序应该:
调用一个要求用户输入的函数,将信息发送回主函数,调用一个计算年龄的函数,调用该函数打印出他们的年龄,名字的首字母和姓氏。
我尝试了这个

def main():
first = input('Enter your first name: ')
last = input('Enter your last name: ')
year = int(input('What year were you born: '))
again = 'y'

def userInput(first, last, year):
    fname = first
    lname = last
    dob = year
    return fname, lname, dob
def calcy(dob):  
# age calculator
    age = 2023 - dob
    return age

def printy(first, last, age):
# Print Statement
    print(f'{fname[0]} {lname} is {age} years old.')
    #play again
    again = input('Play again? (y/n)')
    while again == 'y':
        first = input('Enter your first name: ')
        last = input('Enter your last name: ')
        year = int(input('Enter your year of birth: '))
        age = 2023 - year
        print(f'{first[0]} {last} is {age} years old.')
        playagain = input('Play again? (y/n)')
    print('Thank you for playing.')

main()

字符串
我似乎不能继续循环,它停止后,第一次输入。我做错了什么?它需要4个功能(主要包括)

6qqygrtg

6qqygrtg1#

你的代码几乎是正确的!你用def语句 * 定义了函数对象 *,但你只 * 调用了你的main函数对象。所以其他函数对象还没有做任何事情。你在程序的最后一行用main()表达式语句调用了main函数,为了让它工作,我们想把 * 其他函数调用 * 直接放入我们的main函数 * 定义 * 的 body 中。所以我们在程序的顶层有 * 函数定义 *,但是我们实际上调用了main函数定义中的定义对象。我们这样做是因为程序变得更加结构化了,尽管只调用一个main很容易运行程序,我们有五个不同的自包含和自给自足的函数对象-所以很容易维护程序和进一步扩展它。

def userInput():
    first = input('Enter your first name: ')
    last = input('Enter your last name: ')
    dob = int(input('Enter year you were born: '))
    return first, last, dob

def calcy(dob):
    return 2023 - dob

def printy(first_name, last_name, persons_age):
    print(f'{first_name} {last_name} is {persons_age} years old.')

def main():
    
    first, last, dob = userInput()
    age = calcy(dob)
    printy(first, last, age)
    again = input('Play again? (y/n): ')
    while again != 'n':
        first, last, dob = userInput()
        age = calcy(dob)
        printy(first, last, age)
        again = input('Play again? (y/n): ')
        
main()

字符串

相关问题