当我开发第一个代码时,我遇到了一个问题,如果出现错误,我尝试使用break
命令重启程序。
看看代码,也许你会更好理解。
Name = str(input("Please enter Your Name:"))
Age = input("Please enter your age: ")
if Age != int():
print ("Error! Check the age")
break
elif Age == int():
continue
Height = input("Please enter your height: ")
if Height != int():
print ("Error! Check the Height")
break
elif Height == int():
continue
if Age == int() and Age >= 18 and Height == int() and Height >= 148:
print("You're able to drive a car " + (Name) )
elif Age == int() and Age < 18 and Height == int() and Height > 148:
print("You're not able to drive a car " + (Name) )
elif Age and Height != int() :
print ("Error! , Age or Height are not numbers")
错误:
&#34; C:\ Users \ Ghanim \ Desktop \ Coding \ Documents \ Projects \ Python \ Project1 \ Project1.py&#34;,第6行 打破 ^ SyntaxError:&#39; break&#39;
外部循环
答案 0 :(得分:1)
break
语句用于退出循环,而不是程序。使用sys.exit()
退出该计划,您还需要导入sys
。
编辑:
在回答你的评论时,我可能会这样做:
while True:
inputted_name = input("Please enter your name:")
try:
name = str(inputted_name)
except ValueError:
print("Please enter a valid name")
else:
break
while True:
inputted_age = input("Please enter your age:")
try:
age = int(inputted_age)
except ValueError:
print("Please enter a valid age")
else:
break
while True:
inputted_height = input("Please enter your height:")
try:
height = float(inputted_height)
except ValueError:
print("Please enter a valid height")
else:
break
if age >= 18 and height >= 148:
print("You're able to drive a car {}".format(inputted_name))
if age < 18 and height > 148:
print("You're not able to drive a car {}".format(inputted_name))
所以有一些变化:
用户输入的每个阶段都在自己的循环中。我使用了try / except / else语句尝试将输入转换为正确的类型,但ValueErrors
除外(如果无法转换则抛出,如果用户将文本答案放入{{1},则会发生这种情况例如。如果它成功地转换为正确的类型,则循环被破坏并且脚本移动到下一个。每个循环都有单独的循环意味着如果用户为其中一个输入了不正确的值,他们不会我必须重做整个事情。
我还使用input age
将format()
插入到最终字符串中,以避免必须进行字符串连接。
另外,请注意,我假设您正在使用Python 3。但是,如果您使用的是Python name
,则应将其替换为input()
。在Python 2中,raw_input()
将尝试将用户输入作为表达式进行评估,而input()
将返回一个字符串。
答案 1 :(得分:0)
break
语句突破循环(for循环或while循环)。除此之外,它没有意义。
答案 2 :(得分:0)
break无法重启你的程序,break只能在循环中使用,例如for或while。
在你的情况下,只需使用exit(-1)
答案 3 :(得分:0)
你的程序中没有循环。 break
不能在循环外使用。您可以使用sys.exit()
代替break
和pass
而不是继续。