我一直在努力创建一个简单的程序来记录'用户并欢迎他们。我对编程非常陌生,因此我对Python所引发的错误感到非常困惑。我也知道有很多问题已经回答了这个特殊的错误,但是它们似乎都没有与我得到的问题完全一致,而且因为我是新的,我无法适应答案。 ☺
这是我的代码......
from datetime import datetime
def userLogin() :
Name = input("Please type your Username ")
if Name == "User1" :
print ("Welcome User1! " + timeIs())
if Name == "User2" :
print ("Welcome User2! The time is " + datetime.strftime(datetime.now(), '%H:%M'))
if Name == "User3" :
print ("Welcome User3! The time is " + datetime.strftime(datetime.now(), '%H:%M'))
def timeIs() :
print ("The time is " + datetime.strftime(datetime.now(), '%H:%M'))
print (userLogin())
正如您所看到的,对于User2和User3,我已经设置了通过datetime模块获取时间的完整操作。但是在User1语句中,我试图通过定义第二个语句(timeIs)并使用它来说明时间来缩短它。每次我登录' user1,python说这个 -
Please type your Username> User1
The time is 19:09
Traceback (most recent call last):
File "/home/pi/Documents/User.py", line 15, in <module>
print (userLogin())
File "/home/pi/Documents/User.py", line 6, in userLogin
print ("Welcome User1! " + timeIs())
TypeError: Can't convert 'NoneType' object to str implicity
正如你所看到的,python接受输入,在没有欢迎消息的情况下吐出时间,并给出了非类型错误的东西。我的问题是,为什么会发生这种情况?非常感谢所有回答我非常简单的问题的人☺
干杯,卡尔
答案 0 :(得分:5)
函数返回一个值。如果您未指定,则会隐式返回1 2 3 4 5
a b c d e
d e f g h
。您的None
函数打印了一些内容,但没有timeIs
语句,因此返回return
。您可以保持原样并以不同方式调用它:
None
或者您可以以相同的方式调用它,但以不同的方式定义它,返回创建的字符串而不是打印它:
if Name == "User1" :
print("Welcome User1! ", end='')
timeIs()