我寫了一個代碼,唯一的問題是assert函數語法。對於功能great(s,b)
,b
必須在範圍(2,37)
和s
必須是一個字符串。同時,我需要聲明s
僅包含數字0-9
,字母a-z
和.
(點)。措辭在python中聲明函數的難度
def great(s,b):
assert b in range(2,37) and type(s)==str
我寫了一個代碼,唯一的問題是assert函數語法。對於功能great(s,b)
,b
必須在範圍(2,37)
和s
必須是一個字符串。同時,我需要聲明s
僅包含數字0-9
,字母a-z
和.
(點)。措辭在python中聲明函數的難度
def great(s,b):
assert b in range(2,37) and type(s)==str
要檢查B是否是整數在範圍從2
到37
包含地:
assert isinstance(b, int) and 2 <= b <= 37
s
是一個字符串(for python 3)
assert isinstance(s, str)
對於與固定數目的符號的檢查,可以使用regular expression:
import re
allowed_re = re.compile('^[0-9a-z.]*$')
assert allowed_re.match(s)
錯誤信息需要,斷言鏈接,http://www.tutorialspoint.com/python/assertions_in_python.htm
def great(s,b):
assert ((b in range(2,37)) and (type(s)==str)), "error happens"
不,這是不正確的。請閱讀[文檔](http://docs.python.org/3.2/reference/simple_stmts.html)。 –
我不明白的最後一部分。什麼是重新?有沒有更簡單的方法? – user2751595
@ user2751595是的,添加鏈接到文檔 – alko
@ user2751595是的,還有其他的,我只是沒有py3在手,並且無法檢查'translate'的確切語法。 – alko