jerry111 发表于 2018-9-12 15:47:59

求助 字符串

while 1:
    print("请输入密码:",end="")
    str1=input("")
    if len(str1)>=1:
      for i in str1:
            if str1.isdigit()==1:
                sign0=1


为什么if str1.isdigit()==1:
这一句会报错,显示:string indices must be integers

claws0n 发表于 2018-9-12 15:49:26

for i in str1: 哪里错的。 str1 是字符串, for i in str1,全是字符……

jerry111 发表于 2018-9-12 15:53:10

claws0n 发表于 2018-9-12 15:49
for i in str1: 哪里错的。 str1 是字符串, for i in str1,全是字符……

还不是很明白,求教。。。。

claws0n 发表于 2018-9-12 16:00:06

jerry111 发表于 2018-9-12 15:53
还不是很明白,求教。。。。

试试以下代码
for i in range(5):
    print(i)

for i in ''abcde":
    print(i)

数组的下标只允许用整数。就是这样

jerry111 发表于 2018-9-12 16:01:52

我的想法是输入字符串str1后,用isdigit()去检验str1中的每一位,只要字符串中出现数字,就使标志位为sign为1,但是报错说:字符串索引必须是整数
是isdigit()不能这样使用还是什么其他原因

jerry111 发表于 2018-9-12 16:09:17

claws0n 发表于 2018-9-12 16:00
试试以下代码
for i in range(5):
    print(i)


请问一下我这个代码哪里有用到数组,不明白,麻烦再细讲一下,谢谢,还有我这样写可以怎么改善让他可以运行

claws0n 发表于 2018-9-12 16:14:35

jerry111 发表于 2018-9-12 16:09
请问一下我这个代码哪里有用到数组,不明白,麻烦再细讲一下,谢谢,还有我这样写可以怎么改善让他可以运 ...

这个字符串是假的,实际上是用数组存储的~ str方括号一出来就是数组。然后到后面你就会发现连数组也是假的,实际上是链表……

你要做那个密码的题目吧?有点忘了,但你的方向好像跟题目的不一样
按照你目前的思维,应该没有理解错误,从字符串中选出数字,然后修该标志
for i in str1:
   if i.isdigit():
       sign0 = 1

jerry111 发表于 2018-9-12 16:33:26

claws0n 发表于 2018-9-12 16:14
这个字符串是假的,实际上是用数组存储的~ str方括号一出来就是数组。然后到后面你就会发现连数组也是 ...

有点明白了,我没有区分数组和字符串,谢谢
我做的就是你说的那个题目
页: [1]
查看完整版本: 求助 字符串