soul_ch 发表于 2020-5-29 21:21:10

运行结果分析

password="FishC.com"
n=3
temp=input("请输入密码:")
while (temp != password and n>0):
    if ('*' in temp) and n>0:
      print("密码中不能含有\"*\"号!您还有%d次机会!请输入密码:" %(n),end='')
      temp=input()
    else:
      n=n-1
      
      print("密码输入错误!您还有%d次机会!请输入密码:" %(n),end='')
      tmep=input()

这一段程序为什么在运行过一次n=n-1之后,哪怕输入带*也还是会执行n=n-1操作,不会保留原n



liuzhengyuan 发表于 2020-5-29 21:22:23

最后 12 行 temp 拼错了……

Twilight6 发表于 2020-5-29 21:28:37

你的这句代码如果要这样写要转义:
print("密码中不能含有\\"*\\"号!您还有%d次机会!请输入密码:" %(n),end='')
或者单双引号配合:
print("密码中不能含有'*'号!您还有%d次机会!请输入密码:" %(n),end='')

# _*_ coding:utf8 _*_
password = "FishC.com"
n = 3
temp = input("请输入密码:")
while (temp != password and n > 0):
    if ('*' in temp) and n > 0:
      print("密码中不能含有\" * \"号!您还有%d次机会!请输入密码:" % (n), end='')
      temp = input()
    else:
      n = n - 1

      print("密码输入错误!您还有%d次机会!请输入密码:" % (n), end='')
      temp = input()
还有就是 temp 打错了

soul_ch 发表于 2020-5-29 21:29:37

liuzhengyuan 发表于 2020-5-29 21:22
最后 12 行 temp 拼错了……

感谢感谢,没看到{:5_106:}

Twilight6 发表于 2020-5-29 21:31:41

Twilight6 发表于 2020-5-29 21:28
你的这句代码如果要这样写要转义:

或者单双引号配合:


因为如果你只用双引号会导致Python会认为你是两串字符串

soul_ch 发表于 2020-5-29 21:32:21

Twilight6 发表于 2020-5-29 21:28
你的这句代码如果要这样写要转义:

或者单双引号配合:


好的,谢谢,复制代码的时候忘了转义了

txxcat 发表于 2020-5-29 21:33:43

没有计数的问题,有一处语法问题,输入*会报错,一处拼错了,改了可以运行。
password="FishC.com"
n=3
temp=input("请输入密码:")
while (temp != password and n>0):
    if ('*' in temp) and n>0:
      print('密码中不能含有"*"号!您还有%d次机会!请输入密码:' %(n),end='')   #<---内容有双引号,外面要改成单引号
      temp=input()
    else:
      n=n-1
      print("密码输入错误!您还有%d次机会!请输入密码:" %(n),end='')
      temp=input()   #<---temp拼错了

Twilight6 发表于 2020-5-29 21:36:09

soul_ch 发表于 2020-5-29 21:32
好的,谢谢,复制代码的时候忘了转义了

问题如果已经解决,就设置最佳结账吧
页: [1]
查看完整版本: 运行结果分析