Python 替换if语句
我无法在作业中使用if语句和循环,因此我想知道如何重写这一行:Python 替换if语句,python,loops,if-statement,Python,Loops,If Statement,我无法在作业中使用if语句和循环,因此我想知道如何重写这一行: if (not float(gravity).is_integer()): 它只是检查重力是浮点还是整数,这样它就可以传递更多的代码。您可以使用快捷操作符来实现逻辑流,而无需if语句。 例如 仅当第一部分为true时,才会执行第二部分 或者,您可以使用 float(gravity).is_integer() or do_stuff() 其中,第二部分仅在第一部分为false时执行 更新 我刚刚读了一篇评论,关于函数是如何计算
if (not float(gravity).is_integer()):
它只是检查重力是浮点还是整数,这样它就可以传递更多的代码。您可以使用快捷操作符来实现逻辑流,而无需if语句。 例如 仅当第一部分为true时,才会执行第二部分 或者,您可以使用
float(gravity).is_integer() or do_stuff()
其中,第二部分仅在第一部分为false时执行
更新
我刚刚读了一篇评论,关于函数是如何计算两边是否产生一个整数斜边的。因此,除非我误解了你的意图,在这种情况下,关键是你不需要一个if语句来决定你是否应该自己显式地返回True或False;您只需直接返回is_integer()
求值的输出,因为这将求值为True或False。我的猜测是,该作业试图教您一种计算的范例
在这种情况下:
try:
gravity = float(gravity)
# Do floaty gravity stuff
except (TypeError, ValueError):
gravity = some_default_value_you_can_handle_some_other_way
您可以将assert与try块结合使用:
try:
assert(not float(gravity).is_integer())
print("evaluated to true")
except:
print("evaluated to false")
将打印语句替换为您希望执行的代码,以防其计算结果为真或假。您可以使用
尝试/,除了?是的,我想可以。快速提问,为什么要将其转换为浮点以测试它是整数还是浮点?@javax重新阅读我的评论。在某些语言中,这可能是禁忌,但在Python中,try/except可用于控制PythonI中的流,因为如果您的输出在浮点和int之间变化,那么您可以使用isinstance(gravity,int)
和isinstance(gravity,float)
,但这证实了您绝对不能使用它们;不可恢复的位置:Passert
不应用于检查这样的值。它的目的是检查程序逻辑。如果出现AssertionError,则表示程序逻辑无效,需要修改程序。@PM 2Ring我同意,但这里是一个简单的程序,他只需要替换If
s。我怀疑这项任务是否如此复杂,因为这些断言实际上揭示了一些错误的逻辑。就目前而言,这是一个明确的解决方案。虽然我明白你的意思,这可能不是个好主意。谢谢你的反馈。我想奇怪的分配规范可以证明奇怪的代码是正确的我只是不喜欢人们看到assert
被用来验证数据,因为他们可能认为assert
就是为了验证数据。
try:
assert(not float(gravity).is_integer())
print("evaluated to true")
except:
print("evaluated to false")