枫枫duck 发表于 2020-4-5 10:22:34

了不起的分支和循环3之设计一个验证用户密码程序

本帖最后由 枫枫duck 于 2020-4-5 10:26 编辑

题目:设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。

secret = 'FishC'
times = 3
while times > 0:
    temp = input('请输入密码')
    if '*' in temp:
      print('密码中不能有'*'号')
      continue
    else:   
      if temp == secret:
            print('密码正确,进入程序')
            break
      else:
            print('还有' ,times-1, '次机会')
            times-= 1
            

出现了如下错误,但我不知道为什么,'*'不是字符串吗,为什么python认为是*号
TypeError: can't multiply sequence by non-int of type 'str'
>>>

KevinHu 发表于 2020-4-5 10:30:23

第6行:print('密码中不能有'*'号')
这里python误认为了是:"密码中不能有" 乘 "号"
解决方案:
print('密码中不能有\'*\'号')# 利用转义字符'\'
print("密码中不能有'*'号")# 单引号和双引号结合python就不会看错了

枫枫duck 发表于 2020-4-5 10:32:05

KevinHu 发表于 2020-4-5 10:30
第6行:print('密码中不能有'*'号')
这里python误认为了是:"密码中不能有" 乘 " ...

谢谢,但为什么' '会识别错误呢

qiuyouzhi 发表于 2020-4-5 10:35:15

枫枫duck 发表于 2020-4-5 10:32
谢谢,但为什么' '会识别错误呢

正常来写应该是要加逗号的(并且把*号改变为字符串):
print('密码中不能有','*','号')
而你又没写逗号,又没写引号
肯定要被误认的

枫枫duck 发表于 2020-4-5 10:37:32

qiuyouzhi 发表于 2020-4-5 10:35
正常来写应该是要加逗号的(并且把*号改变为字符串):
print('密码中不能有','*','号')
而你又没写逗 ...

那是不是说“ ”和' '不同呢“”功能多一点

qiuyouzhi 发表于 2020-4-5 10:56:33

枫枫duck 发表于 2020-4-5 10:37
那是不是说“ ”和' '不同呢“”功能多一点

不是的,他俩一样
页: [1]
查看完整版本: 了不起的分支和循环3之设计一个验证用户密码程序