python - 当我尝试将重启功能添加到我的程序 PYTHON 时出错
问题描述
我正在创建一个代码。它在没有 def 的情况下工作,但我希望代码最后重新启动(打印问题“你不想重新启动?”)并从头开始启动程序。在我在顶部添加 def 之前,它工作得很好,并且
restart=input('You want to restart?')
if restart=='YES': my_func()
这是我的代码:
#rektangel
def prog():
lengde=int(input("Hva er lengden?"))
bredde=int(input("Hva er bredden?"))
areal=lengde*bredde
omkrets=(lengde+bredde)*2
#omkrets
radius=int(input("Hva er radiusen til sirkelen?"))
pi = 3.14
arealSirkel=pi*radius*radius
omkretsSirkel=pi*2*radius
svar=input("Velger du rektangel eller sirkel? \n")
if (svar=='Rektangel' or svar=='rektangel' or svar=='r' or svar=='R' or svar=='1'):
rektangel=input("Skal du finne areal eller omkrets")
if (rektangel=='Areal' or rektangel=='areal' or rektangel=='a' or rektangel=='A' or rektangel=='1'):
print("{:.2f}".format(areal),"cm")
elif (rektangel=='Omkrets' or rektangel=='omkrets' or rektangel=='o' or rektangel=='O' or rektangel=='2'):
print("{:.2f}".format(omkrets),"cm")
elif (svar=='Sirkel' or svar=='sirkel' or svar=='s' or svar=='S' or svar=='2'):
sirkel=input ("Skal du finne areal eller omkrets? \n")
if (sirkel=='Areal' or sirkel=='areal' or sirkel=='a' or sirkel=='A' or sirkel=='1'):
print("{:.2f}".format(omkretsSirkel),"cm")
elif (sirkel=='Omkrets' or sirkel=='omkrets' or sirkel=='o' or sirkel=='O' or sirkel=='2'):
print("{:.2f}".format(omkretsSirkel),"cm")
else:
print("du skrev ugyldig verdi")
prog()
对不起,不是英文代码。这是针对学校项目的,他们真的不想用挪威语而不是英语(还有变量......)。
谢谢先进
解决方案
尝试这个
while True:
# main program
#rektangel
def prog():
lengde=int(input("Hva er lengden?"))
bredde=int(input("Hva er bredden?"))
areal=lengde*bredde
omkrets=(lengde+bredde)*2
#omkrets
radius=int(input("Hva er radiusen til sirkelen?"))
pi = 3.14
arealSirkel=pi*radius*radius
omkretsSirkel=pi*2*radius
svar=input("Velger du rektangel eller sirkel? \n")
if (svar=='Rektangel' or svar=='rektangel' or svar=='r' or svar=='R' or svar=='1'):
rektangel=input("Skal du finne areal eller omkrets")
if (rektangel=='Areal' or rektangel=='areal' or rektangel=='a' or rektangel=='A' or rektangel=='1'):
print("{:.2f}".format(areal),"cm")
elif (rektangel=='Omkrets' or rektangel=='omkrets' or rektangel=='o' or rektangel=='O' or rektangel=='2'):
print("{:.2f}".format(omkrets),"cm")
elif (svar=='Sirkel' or svar=='sirkel' or svar=='s' or svar=='S' or svar=='2'):
sirkel=input ("Skal du finne areal eller omkrets? \n")
if (sirkel=='Areal' or sirkel=='areal' or sirkel=='a' or sirkel=='A' or sirkel=='1'):
print("{:.2f}".format(omkretsSirkel),"cm")
elif (sirkel=='Omkrets' or sirkel=='omkrets' or sirkel=='o' or sirkel=='O' or sirkel=='2'):
print("{:.2f}".format(omkretsSirkel),"cm")
else:
print("du skrev ugyldig verdi")
prog()
while True:
answer = str(input('Run again? (y/n): '))
if answer in ('y', 'n'):
break
print("invalid input.")
if answer == 'y':
continue
else:
print("Goodbye")
break
推荐阅读
- android - 以编程方式执行 UI 事件,如 Android 应用程序中的点击事件
- .net - AzureDevops-.Net 项目分析与 sonarQube 错误
- java - 如何用两个分隔符拆分字符串并只保留其中一个?
- angular - Angular 5 - Angular 服务不在“模态”中显示数据
- python - 如果内容来自缓存,如何在烧瓶应用程序中查找
- c# - excel无法打开文件,因为文件格式或文件扩展名无效c#
- python - Python:删除除X之外的所有文件夹
- python - 用于 Python 应用程序的 Azure Application Insights 日志记录 - 显式设置异常属性
- c++ - 在单写多读的情况下,我们需要锁定 uint64_t 吗?
- javascript - 如何在父组件的多个位置渲染 React 组件的一部分(在另一个组件的中间渲染组件)