使用while循环从字符串中一次打印一个字符

9 投票
9 回答
164295 浏览
提问于 2025-04-17 17:58

我正在读《核心Python编程(第二版)》,书里让我用“while”循环一个一个地打印字符串中的字符。

我知道“while”循环是怎么工作的,但不知为什么我就是想不出怎么做。我到处找,只看到用“for”循环的例子。

所以我需要做的事情是:

用户输入:

text = raw_input("Give some input:  ")

我知道怎么从数组中读取每一项数据,但我想不起来怎么对字符串做这件事。

现在我只需要一个能工作的“while”循环,能够一个一个地打印字符串中的每个字符。

我想我得用len(text),但我不太确定在这个问题中该怎么用。

如果能帮我一下就太好了!我知道这应该是个很简单的问题,但就是想不出来!

提前谢谢你! :)

9 个回答

2

其他的回答已经给了你用 while 循环(或者 for 循环)遍历字符串的代码,但我觉得解释一下这两种循环的区别可能会更有帮助。

while 循环会重复执行一些代码,直到满足某个条件为止。例如:

import random

sum = 0
while sum < 100:
    sum += random.randint(0,100) #add a random number between 0 and 100 to the sum
    print sum

这段代码会不断添加0到100之间的随机数,直到总和大于或等于100。关键是,这个循环可能只执行一次(如果第一个随机数是100),也可能会一直执行下去(如果它一直选到0作为随机数)。我们在循环结束之前无法预测它会执行多少次。

for 循环其实就是一种特殊的 while 循环,通常用在我们想让循环执行固定次数的情况下。Java 的 for 循环通常会用到一个计数器变量(下面我用的是 i),这让 whilefor 循环之间的相似性更加明显。

for (int i=0; i < 10; i++) { //starting from 0, until i is 10, adding 1 each iteration
    System.out.println(i);
}

这个循环会准确地执行10次。这其实是更简洁的写法:

int i = 0;
while (i < 10) { //until i is 10
   System.out.println(i);
   i++; //add one to i 
}

最常见的 for 循环用法是遍历一个列表(或者字符串),而Python让这变得非常简单:

for item in myList:
    print item

或者

for character in myString:
    print character

不过,你不想使用 for 循环。在这种情况下,你需要通过索引来查看每个字符。像这样:

print myString[0] #print the first character
print myString[len(myString) - 1] # print the last character.

知道你可以用一个计数器和 while 循环来实现 for 循环,并且知道可以通过索引访问单个字符,现在应该很容易用 while 循环逐个访问每个字符了。

不过,一般来说,在这种情况下你会使用 for 循环,因为它更容易阅读。

6

字符串可以用来进行for循环操作:

for a in string:
    print a
12

我相信网上有很多关于Python的while循环的例子,但这里给你一个示例:

i=0

while i < len(text):
    print text[i]
    i += 1

撰写回答