Python生日代码出现语法错误

Python生日代码出现语法错误,python,python-3.x,Python,Python 3.x,我正试图学习在Python 3.6.5中使用这个简单的生日一行程序,但却遇到了语法错误:无效语法,有人能帮我找出哪里出了问题: print map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),range(4)) 谢谢 您已经将其标记为python 3.x。这是Python2.x代码。你需要 print(list(map(lambda x: "Happy Birthday to " + ("you" if

我正试图学习在Python 3.6.5中使用这个简单的生日一行程序,但却遇到了语法错误:无效语法,有人能帮我找出哪里出了问题:

print map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),range(4))

谢谢

您已经将其标记为python 3.x。这是Python2.x代码。你需要

print(list(map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),
               range(4))))
因为print是一个函数,而不是python3中的语句。同样,map在Python2中返回了一个列表,但返回了一个需要包装在列表中才能打印值的列表

这也是有点老式的python,一种现代的书写方式是

print(["happy birthday to {}".format('you' if x != 2 else 'dear name') for x in range(4)]) 

您的代码在python 3.x上失败的原因已经由@FHTMitchell answer给出了答案,也就是说,有一种更简单的方法可以在python2.x/3.x中实现您想要的功能:

print(["Happy Birthday to {}".format("you" if x!=2 else "dear Name") for x in range(4)])
实现此任务的方法有很多,仅举几个例子:

lst=[祝你生日快乐]*4;lst[1]=lst[1]。亲爱的名字,替换你;printlst

s1=祝你生日快乐;打印[s1,s1.replaceyou,亲爱的名字,s1,s1]

但如果你问我,我最喜欢的一个,即使不是一个一行,也会这样做:

import textwrap

song = textwrap.dedent("""\
    Happy Birthday to you
    Happy Birthday to dear Name
    Happy Birthday to you
    Happy Birthday to you
""")

print(song.splitlines())
既然我们在玩,就让我们用不同的方法剥猫皮吧

另外,我不喜欢lambdas,它们很慢

另一方面,谢谢@FHTMitchell,我一直都知道list.insert很慢,但我不知道它太慢了

>>> import timeit
>>> timeit.timeit('a += ["something"]', setup='a = ["thing"]')
0.07153259999904549
>>> timeit.timeit('a[0] = "something"', setup='a = ["thing"]')
0.03036419999989448
>>> timeit.timeit('a.insert(0, "something")', setup='a = ["thing"]')
264.89795089999825

天哪

如果它是python3,请将括号添加到print@OmarEinea并在列表中换行,因为map是3.xbeat中的迭代器;比你在同一时间发布,嗯。。。给你+1,因为你跑得那么快;DNa最好的一行是:打印[f'Happy birth to{placeholder}作为['you','you','dear name','you']中的占位符实际上只有一行:P不是英语歌曲专家。。。但是生日快乐不是生日快乐吗D.如果你不喜欢lambda,因为它太慢,绝对不要使用list.insert!您的代码将与python2.x不兼容。。。这首歌说生日快乐,即:'D@BPLOP说3.6.5——这就是我使用的,就我而言,没有f字符串的python在我之下,我拒绝承认它的存在。Python出生于3.6:P编辑:我修正了这首歌!!!:P@JavierBuzzi哈哈,很公平,我没有看到蟒蛇3-x标签+1虽然此代码段可能会解决此问题,但它没有解释为什么或如何回答此问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。您可以使用该按钮改进此答案,以获得更多选票和声誉!
from time import  sleep
def start():
    name="Birthday person"
    print("\t\ti i i")
    sleep(1)
    print("\t\ti i i")
    sleep(1)
    print("\t\ti i i")
    sleep(1)
    print("\t :------------------:")
    sleep(1)
    print("\t ▐█░█▌█▀▀█ █▀▀█ █▀▀█ █▌▄█")
    sleep(1)
    print("\t ▐█▀█▌█▄▄█ █▄▄█ █▄▄█ █▄██")
    sleep(1)
    print('\t ▐█░█▌█▌▐█ █▌░░ █▌░░ ░██')
    sleep(1)
    print('────────???.•°”˜˜”°•.???')
    sleep(1)
    print('▀██▀▀▄──???.•°”˜˜”°•.???')
    sleep(1)
    print('─██▄▀▄──???.•°”˜˜”°•.???')
    sleep(1)
    print('─██───█─▄──────▄──█───')
    sleep(1)
    print('─██───█─▄─▄─▄─▄█▄─█─▄─')
    sleep(1)
    print('▄██▄▄▀──█─█▀───█──█▀─█')
    sleep(1)
    print('────────█─█────█──█──█')
    sleep(1)
    print('██████║░░▄▄▄▄║▄▄║░▄║♥')
    sleep(1)
    print('███║░██║██║░█║██║░█║♥')
    sleep(1)
    print('███║░██║██║░█║██║░█║♥')
    sleep(1)
    print('███║░██║▀█▄▀█║▀█▄▀█║♥')
    sleep(1)
    print('███║░██║░░░░░░▄░░░█║♥')
    sleep(1)
    print('██████║░░░░░░░▀███▀')
    sleep(1)
    print('')
    sleep(1)
    print('')
    sleep(1)
    print('')


    sleep(2)
    print("A message for you.....")
    sleep(4)
    print("\tMAY GOD BLESS YOU AND YOUR FAMILY\n ALWAYS BE HAPPY AND GOOD HEALTH")
    sleep(5)
    print("one second......")
    print()
    sleep(.3)
    print('────▀██████─────▀─────────────█')
    sleep(.3)
    print('─────▌█───▀─█▄▀─█─▄▀▄─█▄▀█─▄▀▀█─▄▀▀')
    sleep(.3)
    print('─────▌███───█───█─█▀▀─█──█─█─▄█─▀▀█')
    sleep(.3)
    print('─────▌█─────▀───▀──▀▀─▀──▀──▀─▀─▀▀▀')
    sleep(.3)
    print('────▄██▄───█──█─────────────────────')
    sleep(.3)
    print('──────────▀█▀─█▄▀▄─▄▀▄')
    sleep(.3)
    print('───────────█──█──█─█▀▀')
    sleep(.3)
    print('───────────▀──▀──▀──▀▀')
    sleep(.3)
    print('──▄▄─▄▄──────▀██▀▀▄───────────█')
    sleep(.3)
    print('─█░█████──────▌█▄▀▄──▄▀▄─▄▀▀─▀█▀')
    sleep(.3)
    print('─▀█░███▀──────▌█───█─█▀▀─▀▀█──█')
    sleep(.3)
    print('───▀█▀────────▌█───█──▀▀─▀▀▀──▀')
    sleep(.3)
    print('─────────────▄██▄▄▀')

a=input("1.Type : 'MJ' \n 2.PRESS 'ENTER' \n (ELSE TYPE 'QUIT' TO QUIT)\n\n:" )
if (a == 'MJ'):
    start()
else:
    print("TAKE CARE BYE!")
from time import  sleep
def start():
    name="Birthday person"
    print("\t\ti i i")
    sleep(1)
    print("\t\ti i i")
    sleep(1)
    print("\t\ti i i")
    sleep(1)
    print("\t :------------------:")
    sleep(1)
    print("\t ▐█░█▌█▀▀█ █▀▀█ █▀▀█ █▌▄█")
    sleep(1)
    print("\t ▐█▀█▌█▄▄█ █▄▄█ █▄▄█ █▄██")
    sleep(1)
    print('\t ▐█░█▌█▌▐█ █▌░░ █▌░░ ░██')
    sleep(1)
    print('────────???.•°”˜˜”°•.???')
    sleep(1)
    print('▀██▀▀▄──???.•°”˜˜”°•.???')
    sleep(1)
    print('─██▄▀▄──???.•°”˜˜”°•.???')
    sleep(1)
    print('─██───█─▄──────▄──█───')
    sleep(1)
    print('─██───█─▄─▄─▄─▄█▄─█─▄─')
    sleep(1)
    print('▄██▄▄▀──█─█▀───█──█▀─█')
    sleep(1)
    print('────────█─█────█──█──█')
    sleep(1)
    print('██████║░░▄▄▄▄║▄▄║░▄║♥')
    sleep(1)
    print('███║░██║██║░█║██║░█║♥')
    sleep(1)
    print('███║░██║██║░█║██║░█║♥')
    sleep(1)
    print('███║░██║▀█▄▀█║▀█▄▀█║♥')
    sleep(1)
    print('███║░██║░░░░░░▄░░░█║♥')
    sleep(1)
    print('██████║░░░░░░░▀███▀')
    sleep(1)
    print('')
    sleep(1)
    print('')
    sleep(1)
    print('')


    sleep(2)
    print("A message for you.....")
    sleep(4)
    print("\tMAY GOD BLESS YOU AND YOUR FAMILY\n ALWAYS BE HAPPY AND GOOD HEALTH")
    sleep(5)
    print("one second......")
    print()
    sleep(.3)
    print('────▀██████─────▀─────────────█')
    sleep(.3)
    print('─────▌█───▀─█▄▀─█─▄▀▄─█▄▀█─▄▀▀█─▄▀▀')
    sleep(.3)
    print('─────▌███───█───█─█▀▀─█──█─█─▄█─▀▀█')
    sleep(.3)
    print('─────▌█─────▀───▀──▀▀─▀──▀──▀─▀─▀▀▀')
    sleep(.3)
    print('────▄██▄───█──█─────────────────────')
    sleep(.3)
    print('──────────▀█▀─█▄▀▄─▄▀▄')
    sleep(.3)
    print('───────────█──█──█─█▀▀')
    sleep(.3)
    print('───────────▀──▀──▀──▀▀')
    sleep(.3)
    print('──▄▄─▄▄──────▀██▀▀▄───────────█')
    sleep(.3)
    print('─█░█████──────▌█▄▀▄──▄▀▄─▄▀▀─▀█▀')
    sleep(.3)
    print('─▀█░███▀──────▌█───█─█▀▀─▀▀█──█')
    sleep(.3)
    print('───▀█▀────────▌█───█──▀▀─▀▀▀──▀')
    sleep(.3)
    print('─────────────▄██▄▄▀')

a=input("1.Type : 'MJ' \n 2.PRESS 'ENTER' \n (ELSE TYPE 'QUIT' TO QUIT)\n\n:" )
if (a == 'MJ'):
    start()
else:
    print("TAKE CARE BYE!")