我有一个函数,该函数生成带有空格的随机字符[a-Z0-9],并将每个字符附加到list
:
words = []
while words.count(' ') < 10:
if len(words) == 0:
# append character
else:
if words[-1].isdigit(): # checking if last character is digit
# append only digit or whitespacce
else:
# append character
如您所见,最后一个(上一个)字符是否为数字,我尝试仅附加数字或空格,否则附加任何字符。问题是,当我运行代码时,出现以下错误:
'NoneType' object has no attribute 'isdigit'
行if words[-1].isdigit():
。我做错了什么,为什么还有None
而不是str
?
答案 0 :(得分:0)
只需创建words
字符串:
(它偏向于chars,因为空格不是数字,因此它可以从数字转换为chars,但不能以其他方式转向-如果我正确的话,这就是你想要的)
import random
sample_digit=" 0123456789"
sample_char=" abcdefghi"
sample_any=sample_digit+sample_char
words = ""
while words.count(' ') <10:
if len(words) == 0:
words+=sample_any[random.randint(0, len(sample_any)-1)]
else:
if words[-1].isdigit():
words+=sample_digit[random.randint(0, len(sample_digit)-1)]
else:
words+=sample_char[random.randint(0, len(sample_char)-1)]
print(words)
答案 1 :(得分:-1)
一种测试字符是否为数字的简单方法:
if words[-1] in '0123456789':
...