我正在阅读“核心Python编程第二版”,他们要求我使用“while”循环一次打印一个字符串,一个字符。
我知道while循环是如何工作的,但由于某种原因,我无法想出如何做到这一点。我一直在环顾四周,只看到使用for循环的例子。
所以我必须做的事情:
用户提供输入:
text = raw_input("Give some input: ")
我知道如何从数组中读出每一段数据,但我不记得如何对字符串进行操作。
现在我需要的是while循环,它会打印字符串的每个字符,一次一个。
我想我要使用len(文本),但我不能100%确定如何在这个问题中使用它。
一些帮助会很棒!我确信这是一个非常简单的问题,但出于某些原因我无法想出来!
提前thx! :)答案 0 :(得分:8)
我很确定,互联网上充满了python while-loops,但是有一个例子:
i=0
while i < len(text):
print text[i]
i += 1
答案 1 :(得分:3)
字符串可以包含for循环:
class QuestionForm(forms.ModelForm):
class Meta:
model = Question
fields = ['pub_date', 'question_text']
class QuestionAdmin(admin.ModelAdmin):
model = Question
form = QuestionForm
admin.site.register(Question, QuestionAdmin)
答案 2 :(得分: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
),并且通常使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.
知道你可以只使用for
循环和计数器进行while
循环,并且知道你可以通过索引访问单个字符,现在应该很容易访问每个字符一个时间使用while
循环。
HOWEVER 一般情况下,在这种情况下你会使用for
循环,因为它更容易阅读。
答案 3 :(得分:2)
尝试此程序:
def procedure(input):
a=0
print input[a]
ecs = input[a] #ecs stands for each character separately
while ecs != input:
a = a + 1
print input[a]
为了使用它你必须知道如何使用程序,虽然它有效,但它最终有一个错误,所以你也必须解决这个问题。
答案 4 :(得分:0)
Python允许您使用字符串作为迭代器:
for character in 'string':
print(character)
我猜你的工作就是弄清楚如何把它变成一个while循环。
答案 5 :(得分:0)
# make a list out of text - ['h','e','l','l','o']
text = list('hello')
while text:
print text.pop()
:)
在python中,空对象被评估为false。 .pop()删除并返回列表中的最后一项。这就是它反向打印的原因!
但可以通过使用:
来修复text.pop( 0 )
答案 6 :(得分:0)
Python代码:
for s in myStr:
print s
OR
for i in xrange(len(myStr)):
print myStr[i]
答案 7 :(得分:0)
试试看...
i=0
x="abc"
while i<len(x) :
print(x[i],end=" ")
print(i)
i+=1
答案 8 :(得分:-2)
这将打印文本中的每个字符
Map<String,String> nameMap = new HashMap<String,String>();
nameMap.put("firstName",firstName);
nameMap.put("secondName",secondName);