我对Stackoverflow和Python(3(非常陌生,所以请原谅我犯的任何错误!这是我迄今为止写的代码:
print("""You will need to enter your name so we can make a reservation!
(Use Enter ↵ to confirm)""")
user_firstname = str(input("What is your first name? "))
user_lastname = str(input("What is your last name? "))
confirm_username = str(input("Is your name " + user_firstname + " " + user_lastname + " ? (y/n) "))[0]
while not confirm_username == "y":
user_firstname = str(input("What is your first name? "))
user_lastname = str(input("What is your last name? "))
confirm_username = str(input("Is your name " + user_firstname + " " + user_lastname + " ? (y/n) "))[0]
else:
user_name = user_firstname + " " + user_lastname
正如您在我的示例中看到的,我必须声明一些变量两次(user_firstname、user_lastname&confirm_username(。while循环之前一次,while循环内一次。我想知道是否有一种更优雅、体积更小的编写代码的方法?任何其他优化建议也非常欢迎!
谢谢!
使用等价于C的do
/while
的Python,它只是一个以if condition: break
:结束的while True:
无限循环
while True:
user_firstname = input("What is your first name? ")
user_lastname = input("What is your last name? ")
confirm_username = input("Is your name " + user_firstname + " " + user_lastname + " ? (y/n) ")[0]
if confirm_username == "y":
break
user_name = user_firstname + " " + user_lastname
注意:我删除了环绕您的input
调用的str()
;input
已经返回str
,所以包装是没有意义的。
while True
无限循环,完成时BREAK!!
print("""You will need to enter your name so we can make a reservation!
(Use Enter ↵ to confirm)""")
user_firstname = str(input("What is your first name? "))
user_lastname = str(input("What is your last name? "))
while True:
confirm_username = str(input("Is your name " + user_firstname + " " + user_lastname + " ? (y/n) "))[0]
if confirm_username == "y":
user_name = user_firstname + " " + user_lastname
break