我正在尝试在python中创建一个可以在以后调用的方法,但是当我运行代码时,它不再起作用。 (在尝试将其变成方法之前,代码已经起作用了)我并不是在试图创建一个类或其他任何花哨的东西,而只是试图获得一个可以调用的有效方法。没有显示错误,程序无法正常运行。
我对Python编程还很陌生,感谢您的帮助
def func():
x= int(input())
while (x>1):
if x%2 == 0:
x = x//2
print(x)
elif x%2 != 0:
x= x*3+1
print(x)
func()
请客气,让我知道是否可以澄清任何事情。
答案 0 :(得分:1)
您的缩进是错误的。请始终使用空格或制表符。
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="lib/style.css">
<script src="lib/script.js">
</script>
</head>
<body>
<div class="flex-layout" role="heading">
<div class="toolbar-header rectangle-mask"></div>
<div class="toolbar-header circle-mask">
<img class="picture" src="data:image/png;base64,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" alt="Header picture"/>
</div>
</div>
</body>
</html>
答案 1 :(得分:0)
我不知道这是否只是这里的格式,但是您在方法内部正确缩进了吗? 应该是:
def func():
x= int(input())
while (x > 1):
if x % 2 == 0:
x = x // 2
print(x)
elif x % 2 != 0:
x= x * 3 + 1
print(x)
如果不是这种情况,请告诉我们您尝试运行时遇到什么错误?
答案 2 :(得分:0)
您需要稍微更改缩进
def func():
x= int(input())
while (x>1):
if x%2 == 0:
x = x//2
print(x)
else:
x= x*3+1
print(x)
当我在Jupyter Notebook中运行时
func()
2
1
从以下位置安装Jupyter jupyter
答案 3 :(得分:-1)
您需要添加缩进,我更喜欢在功能之外使用输入。
然后,您可以重用函数逻辑。
当然这取决于您的情况。
def func(x):
while (x>1):
if x%2 == 0:
x = x//2
print(x)
elif x%2 != 0:
x= x*3+1
print(x)
x= int(input())
func(x)