import string while True: p= input("请输入密码:") letter=0 for k in p: if k in string.digits: letter=letter+1 if len(p) >= 8 and (p in string.ascii_letters and string.digits)and letter >= 2: print("有效密码!") break else: print("无效密码!")
时间: 2024-04-27 16:22:29 浏览: 61
这段代码是一个密码验证程序,可以让用户输入密码并判断其是否符合要求。要求包括密码长度至少为8位,包含字母和数字,且数字数量不少于2个。使用了 Python 内置的 string 模块,其中 string.digits 包含了数字,string.ascii_letters 包含了大小写字母。程序通过 for 循环遍历密码中每个字符,如果字符是数字,则将 letter 变量加1。最后通过 if 语句判断密码是否符合要求,并输出相应的结果。如果密码符合要求,则通过 break 跳出 while 循环。否则,继续循环并让用户重新输入密码。
相关问题
import random import string def read_file(file): with open(file,'r', encoding='UTF-8') as f: text = f.read() for ch in string.punctuation+string.digits: text = text.replace(ch," ") return text.split() def secret_word(ls): return random.choice(ls).lower() def get_guessed_word(cover_word, word, letter): result = "" for i in range(len(word)): if word[i] == letter: result += letter + " " else: result += cover_word[i2:i2+2] return result def word_guess(secret_word): guess_list=[] for i in range(len(secret_word)): guess_list.append('') cover_word = " ".join(guess_list) print("秘密单词是: {}".format(secret_word)) print("你的单词长度为 {} 个字符".format(len(secret_word))) limit_times = len(secret_word) * 2 print("你有 {} 次猜测机会,开始填词吧".format(limit_times)) i=1 while i<=limit_times: letter = input('请输入你猜测的字母:\n') if letter in secret_word: cover_word = get_guessed_word(cover_word, secret_word, letter) print("正确答案为:{}".format(cover_word)) if cover_word.find("") == -1: print("你太厉害了,居然只用了{}次就猜中了单词".format(i)) print("秘密单词是: {}".format(secret_word)) return secret_word else: print("真遗憾,你猜测的字母不在单词中!") i+=1 print("太遗憾了,你未能在{}次内猜出单词".format(limit_times)) print("秘密单词是: {}".format(secret_word)) return secret_word def main(): action = input() if action == "选词": random_seed = int(input()) random.seed(random_seed) word_list = read_file("data/dict.txt") secret_word = secret_word(word_list) print(secret_word) elif action == "模板": cover_word = input() word = input() letter = input() print(get_guessed_word(cover_word, word, letter)) elif action == "开始填词": random_seed = int(input()) random.seed(random_seed) word_list = read_file("data/dict.txt") secret_word = secret_word(word_list) word_guess(secret_word) else: print("加载单词信息") print("输入错误 ") if name == 'main': main()
这是一个Python程序,实现了一个单词猜猜看的小游戏。主要包含以下功能:
1. 读取文本文件中的单词列表,并随机选择一个单词作为秘密单词。
2. 根据秘密单词的长度,计算出玩家猜测的次数上限。
3. 玩家每次可以输入一个字母作为猜测,程序会告诉玩家这个字母是否在秘密单词中出现,并显示出已猜中的字母。
4. 当玩家猜中所有字母或达到了猜测次数上限时,程序会结束游戏并告诉玩家答案。
你可以通过输入 "选词" 来随机选择一个单词作为秘密单词,通过输入 "开始填词" 来开始游戏。如果你想测试程序的其他功能,可以输入 "模板" 来进行测试。
s1 = 'hello, nice to meet you. i am 18. my birthday is 1999-05-23' import string countdigits = 0 countabc = 0 countelse = 0 for i in s1: if i in string.digits: countdigits += 1 if i in string.ascii_lowercase: countabc += 1 else: countelse += 1 print(f'数字有{countdigits}个,字母有{countabc}个,其他符号有{countelse}个')哪里有问题,输入的是hello, nice to meet you. i am 18. my birthday is 1999-05-23
代码中有一个小错误,第二个if语句后面应该使用elif而不是if,否则会重复计算其他符号的数量。修改后的代码如下:
```python
s1 = 'hello, nice to meet you. i am 18. my birthday is 1999-05-23'
import string
countdigits = 0
countabc = 0
countelse = 0
for i in s1:
if i in string.digits:
countdigits += 1
elif i in string.ascii_lowercase:
countabc += 1
else:
countelse += 1
print(f'数字有{countdigits}个,字母有{countabc}个,其他符号有{countelse}个')
```
输出结果为: 数字有8个, 字母有25个, 其他符号有12个。
阅读全文