sfqxx 发表于 2023-2-26 20:21:14

为什么这段代码不会输出

本帖最后由 sfqxx 于 2023-2-28 20:55 编辑

就是这段代码,想要输出一个字符串中哪个是大写,可为什么没有输出?S = input()
b = len(S)
c = 0
d = 1
while b == c:
if S.istitle():
    print(d)
else:
      c+=1
      d+=1

isdkz 发表于 2023-2-26 20:26:42

因为压根就不会进入循环,b 不等于 c,直接用 for 循环不好吗?
S = input()
for i in S:
    if i.isupper():
      print(i)

sfqxx 发表于 2023-2-26 20:38:23

isdkz 发表于 2023-2-26 20:26
因为压根就不会进入循环,b 不等于 c,直接用 for 循环不好吗?

好像还是不行

isdkz 发表于 2023-2-26 20:40:26

sfqxx 发表于 2023-2-26 20:38
好像还是不行

我运行没有问题呀,

输入:
ABCDefg

输出:
A
B
C
D

sfqxx 发表于 2023-2-26 20:46:35

isdkz 发表于 2023-2-26 20:40
我运行没有问题呀,

输入:


要求输出第几个字符是大写,也就是数字

骑士123456 发表于 2023-2-26 20:49:01

不符合循环条件,当然不会进入循环啊。即便进入循环也会陷入死循环,因为无论是否大写字母,c,d都应该加1.建议用遍历语句for。
S = input()
b = len(S)
for c in range(b):
    if S.istitle():
      print(c+1)
如果实在想用while循环的话:
S = input()
b = len(S)
c = 0
d = 1
while b != c:
if S.istitle():
    print(d)
    c+=1
    d+=1
else:
      c+=1
      d+=1

chinajz 发表于 2023-2-26 21:02:27

本帖最后由 chinajz 于 2023-2-26 21:23 编辑

#coding:gbk
S = "aDciEhU"
#S=input()
for c in range(len(S)):
    if S.istitle():
      print(c+1,S)

isdkz 发表于 2023-2-26 21:12:09

sfqxx 发表于 2023-2-26 20:46
要求输出第几个字符是大写,也就是数字

S = input()
for i, c in enumerate(S, 1):
    if c.isupper():
      print(i)
页: [1]
查看完整版本: 为什么这段代码不会输出