我可以将 def 放在 try 循环中吗?

问题描述 投票:0回答:1

这是学校的一项任务,我不应该使用 bool 变量或主要方法。 我使用学校推荐的 replit,它有一些人工智能自动更正风格功能,可以帮助我让代码按照我想要的方式工作。


def fahr_to_cel (celsius):
  celsius = (celsius - 32) * 5 / 9
  return(celsius)
try:
  fahrenheit = int(input("Skriv en temperatur i fahrenheit: "))
  celsius = (fahrenheit - 32) * 5/9
  print(f"Temperaturen i Celsius är: {celsius:.2f}")
  if celsius <= 82:
    print ("Det är för kallt")
  elif celsius >=87:
    print ("Det är för varmt")
  else: print ("Det är lagom")
  
except ValueError:
  print("Ogiltig inmatning. Skriv ett heltal.")

celsius = int(input())
celsius = (fahr_to_cel(celsius))

所以现在 def 部分没用了,我可以直接删除它,如果我这样做,我仍然在 main 方法之外吗?

我还尝试将 def 移到 try 中,需要将其删除,所以我删除了它,我的代码如下所示

try:
  fahrenheit = int(input("Skriv en temperatur i fahrenheit: "))
  def fahr_to_cel (celsius):
    celsius = (celsius - 32) * 5 / 9
  print(f"Temperaturen i Celsius är: {celsius:.2f}")
  if celsius <= 82:
    print ("Det är för kallt")
  elif celsius >=87:
    print ("Det är för varmt")
  else: print ("Det är lagom")
  
except ValueError:
  print("Ogiltig inmatning. Skriv ett heltal.")

celsius = int(input())
celsius = (fahr_to_cel(celsius))

但是现在由于某种原因没有定义摄氏度,我错过了什么?

python
1个回答
0
投票

正确代码:

def fahr_to_cel(celsius):
 return (celsius-32)* 5 / 9
try:
 fahrenheit = int(input("Skriv en temperatur i fahrenheit: "))
 celsius=fahr_to_cel
 print(f"Temperaturen i Celsius är: {celsius:.2f}")
 if (celsius<=82):
  print ("Det är för kallt")
 elif (celsius>=87):
  print ("Det är för varmt")
 else:
  print ("Det är lagom")
except ValueError:
 print("Ogiltig inmatning. Skriv ett heltal.")

最后我不明白摄氏等。 def 可以放在 try 里面,这通常是一个很好的做法。但是你的问题不太好,你能改进一下吗?

© www.soinside.com 2019 - 2024. All rights reserved.