我先学个python 发表于 2022-5-4 17:13:28

求教为啥判断输入的内容无法判断?

本帖最后由 我先学个python 于 2022-5-4 17:26 编辑

name = input("请输入用户名:\n")
print("您好," + name + ",欢迎使用YandeOS!")

passwd_local = 2022
passwd = input("请输入您的密码,以确认身份!\n")

i = 3
while i > 0:

    if passwd == passwd_local:
      print("身份已确定,欢迎您进入系统!")
      break
    else:
      i = i - 1
      if i == 0:
            print("再见!")
            break
      else:
            print("您还剩下%d次机会" % (i))
            print("请再次确认您的密码是否输入正确!")
            passwd = input("")




代码出问题主要在 if passwd == passwd_local:无法判断
我有疑问:1.是否因为输入的是字符串,所以无法判断?
                2.如果我把密码复杂化,中英文数字互混又该如何实现?

我先学个python 发表于 2022-5-4 17:26:51

经过修改,已近解决一的问题,现在就是二的问题了
import decimal

name = input("请输入用户名:\n")
print("您好," + name + ",欢迎使用YandeOS!")

passwd_local = 2022
passwd = input("请输入您的密码,以确认身份!\n")
passwd = decimal.Decimal(passwd)

i = 3
while i > 0:

    if passwd == passwd_local:
      print("身份已确定,欢迎您进入系统!")
      break
    else:
      i = i - 1
      if i == 0:
            print("再见!")
            break
      else:
            print("您还剩下%d次机会" % (i))
            print("请再次确认您的密码是否输入正确!")
            passwd = input("")
            passwd = decimal.Decimal(passwd)

我先学个python 发表于 2022-5-4 17:30:59

import decimal

name = input("请输入用户名:\n")
print("您好," + name + ",欢迎使用YandeOS!")

passwd_local = "2022sse"
passwd = input("请输入您的密码,以确认身份!\n")
#passwd = decimal.Decimal(passwd)

i = 3
while i > 0:

    if passwd == passwd_local:
      print("身份已确定,欢迎您进入系统!")
      break
    else:
      i = i - 1
      if i == 0:
            print("再见!")
            break
      else:
            print("您还剩下%d次机会" % (i))
            print("请再次确认您的密码是否输入正确!")
            passwd = input("")
            #passwd = decimal.Decimal(passwd)


优秀,二的问题也解决了

Twilight6 发表于 2022-5-4 19:21:13



1.是否因为输入的是字符串,所以无法判断?
2.如果我把密码复杂化,中英文数字互混又该如何实现?

由于你的 passwd_local 赋值的是 int 类型数据,而 input 函数接收用户输入总是返回一个字符串 类型数据

所以 int 类型数据 和 str 类型数据进行比较,永不成立,只需要将你原密码也设置为 str 类型即可比较是否相等

页: [1]
查看完整版本: 求教为啥判断输入的内容无法判断?