使用while循环从字符串中一次打印一个字符
我正在读《核心Python编程(第二版)》,书里让我用“while”循环一个一个地打印字符串中的字符。
我知道“while”循环是怎么工作的,但不知为什么我就是想不出怎么做。我到处找,只看到用“for”循环的例子。
所以我需要做的事情是:
用户输入:
text = raw_input("Give some input: ")
我知道怎么从数组中读取每一项数据,但我想不起来怎么对字符串做这件事。
现在我只需要一个能工作的“while”循环,能够一个一个地打印字符串中的每个字符。
我想我得用len(text),但我不太确定在这个问题中该怎么用。
如果能帮我一下就太好了!我知道这应该是个很简单的问题,但就是想不出来!
提前谢谢你! :)
9 个回答
其他的回答已经给了你用 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
),这让 while
和 for
循环之间的相似性更加明显。
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
循环,因为它更容易阅读。
字符串可以用来进行for循环操作:
for a in string:
print a
我相信网上有很多关于Python的while循环的例子,但这里给你一个示例:
i=0
while i < len(text):
print text[i]
i += 1