相关疑难解决方法(0)

询问用户输入,直到他们给出有效的响应

我正在编写一个必须接受用户输入的程序.

#note: Python 2.7 users should use `raw_input`, the equivalent of 3.X's `input`
age = int(input("Please enter your age: "))
if age >= 18: 
    print("You are able to vote in the United States!")
else:
    print("You are not able to vote in the United States.")
Run Code Online (Sandbox Code Playgroud)

如果用户输入合理数据,这将按预期工作.

C:\Python\Projects> canyouvote.py
Please enter your age: 23
You are able to vote in the United States!
Run Code Online (Sandbox Code Playgroud)

但如果他们犯了错误,那就崩溃了:

C:\Python\Projects> canyouvote.py
Please enter your age: dickety six
Traceback (most recent call last):
  File "canyouvote.py", line 1, in …
Run Code Online (Sandbox Code Playgroud)

python validation loops user-input python-3.x

523
推荐指数
10
解决办法
42万
查看次数

为什么我的递归函数返回None?

我目前正试图绕着学习Python来解决问题,而且我对递归函数有点拖延.在Think Python中,其中一个练习是编写一个函数,使用以下定义确定数字a是否是数字b的幂:

"数字a是b的幂,如果它可被b整除,a/b是b的幂.写一个叫做is_power的函数,它接受参数a和b,如果a是b的幂,则返回True."

我的功能的当前状态是:

def isPower(a,b):
    return a % b == 0 and (a/b) % b == 0

print isPower(num1,num2)
Run Code Online (Sandbox Code Playgroud)

实际上,这会产生我期望的结果.然而本章的重点是编写递归函数以减少冗余,我不太确定如何将最终的"(a/b)%b == 0"转换为递归.我试过了:

def isPower(a,b):
    if a % b != 0:
        return False
    elif isPower((a/b),b):
        return True
Run Code Online (Sandbox Code Playgroud)

但那只是返回无.

递归这个函数的正确方法是什么?

python recursion

5
推荐指数
1
解决办法
2416
查看次数

标签 统计

python ×2

loops ×1

python-3.x ×1

recursion ×1

user-input ×1

validation ×1