牛逼牛逼 发表于 2020-4-14 23:19:16

你好大佬们,请教一个小甲鱼14课程的一个内容

while True:
    temp = input('请输入一个密码:')
    if temp == temp.isnumric():
      print('密码中必须包括数字和字母',end='')
    if temp == temp.isalpha():
      print('密码中必须包括数字和字母',end='')
    if temp == temp.isalnum():
      print('编写成功')
为什么会报错AttributeError: 'str' object has no attribute 'isnumric'
看不懂啊。。。。。
我觉得代码没错啊

txxcat 发表于 2020-4-14 23:32:08

是isnumeric(),你漏了个e。

牛逼牛逼 发表于 2020-4-14 23:43:11

本帖最后由 牛逼牛逼 于 2020-4-14 23:49 编辑

txxcat 发表于 2020-4-14 23:32
是isnumeric(),你漏了个e。

还是不行啊大佬
会无限循环请输入密码

woai5551981 发表于 2020-4-14 23:56:42

你又少了个is,记住是 temp.isnumric():

admintest166 发表于 2020-4-14 23:58:15

牛逼牛逼 发表于 2020-4-14 23:43
还是不行啊大佬
会无限循环请输入密码

因为你就是写了一个死循环啊 根本没有写跳出循环的条件

牛逼牛逼 发表于 2020-4-15 00:02:08

admintest166 发表于 2020-4-14 23:58
因为你就是写了一个死循环啊 根本没有写跳出循环的条件

求大佬帮忙改一下

admintest166 发表于 2020-4-15 00:04:00

牛逼牛逼 发表于 2020-4-15 00:02
求大佬帮忙改一下

a=0
while a<5:
   temp = input('请输入一个密码:')
   if temp == temp.isnumeric():
         print('密码中必须包括数字和字母',end='')
   if temp == temp.isalpha():
         print('密码中必须包括数字和字母',end='')
   if temp == temp.isalnum():
         print('编写成功')
   a+=1
其实就很简单 while 循环 如果a变量中的值小于5 就会进入循环 如果a>5那么就会不会再循环

txxcat 发表于 2020-4-15 00:06:35

牛逼牛逼 发表于 2020-4-14 23:43
还是不行啊大佬
会无限循环请输入密码

你的代码里没有退出,而且,temp==,那都是什么判断,参考下面代码:
while True:
    temp = input('请输入一个密码:')
    if temp.isnumeric() or temp.isalpha():#既然内容一样,就合并吧
      print('密码中必须包括数字和字母',end='')
#    if temp.isalnum():    #排除了纯数字和纯字母,为什么还要这个,符号不行吗?
    else:
      print('编写成功')
      break    #要有退出循环的语句

牛逼牛逼 发表于 2020-4-15 00:07:12

admintest166 发表于 2020-4-15 00:04
其实就很简单 while 循环 如果a变量中的值小于5 就会进入循环 如果a>5那么就会不会再循环

我还有一个问题就是什么字符串的内置函数必须要数字和字母一起才会true,反之false

牛逼牛逼 发表于 2020-4-15 00:13:12

txxcat 发表于 2020-4-14 23:32
是isnumeric(),你漏了个e。

谢谢大佬

woai5551981 发表于 2020-4-15 00:16:26

你的用法也不对, temp.isnumric():得到的是ture和false,表达式是不是不需要temp和 temp.isnumric()肯定不相等,一个属于字符串,一个是布尔量,不会相等

woai5551981 发表于 2020-4-15 00:18:01

还有你的temp.isalnum()用法也不对,只要密码里面有个数、字母,值都会为true

岚冰1234 发表于 2020-4-15 00:21:22

这段代码本身就是有问题的,temp本来是一个输入的变量,结过你把变量的内置函数结果做比较,他的结果无非返回True或者False,是bool类型,而temp是字符串类型,他们永远不相等,也就是说你这段代码完全无效
temp = input('请输入一个密码:')
   if temp == temp.isnumeric():
         print('密码中必须包括数字和字母',end='')
   if temp == temp.isalpha():
         print('密码中必须包括数字和字母',end='')
   if temp == temp.isalnum():
         print('编写成功')
进入无限循环的原因,你没有设置出去的条件,比如你可以后面加一个return False,就可以跳出循环了

牛逼牛逼 发表于 2020-4-15 00:28:33

岚冰1234 发表于 2020-4-15 00:21
这段代码本身就是有问题的,temp本来是一个输入的变量,结过你把变量的内置函数结果做比较,他的结果无非返 ...

学到了,感谢大佬

牛逼牛逼 发表于 2020-4-15 00:29:32

woai5551981 发表于 2020-4-15 00:16
你的用法也不对, temp.isnumric():得到的是ture和false,表达式是不是不需要temp和 temp.isnumric()肯定不 ...

学到了,谢谢大佬
页: [1]
查看完整版本: 你好大佬们,请教一个小甲鱼14课程的一个内容