我需要制作一个程序,用户输入一个单词,我需要对该单词中的每个单独的字母做一些事情。他们一次只能用一个字输入一个字母。
即。有人进入“测试”我怎么能让我的程序知道这是一个四个字母的单词以及如何分解它,比如让我的程序将四个变量设置为不同的字母。它也应该能够处理越来越大的单词。
我可以使用for语句吗?类似于字母ste给变量的字母,但它是什么样的20字符字母如何获得所有变量名称等等?
答案 0 :(得分:3)
你的意思是这样吗?
>>> s = 'four'
>>> l = list(s)
>>> l
['f', 'o', 'u', 'r']
>>>
附录:
即使那(显然)你认为你想要的东西,它可能没有必要,因为字符串几乎可以容纳任何大小的单词 - 所以像s
这样的单个字符串变量应该是好的足以让你的程序试图为每个角色创建一堆单独命名的变量。首先,编写程序的其余部分是很困难的,因为你不知道要使用哪些有效的变量名。
没有为每个字符分别使用单独变量的原因是因为单个字符串中可以包含任意数量的字符以及为空。如果应用于一个字符串,Python的内置len()
函数将返回字符串中字母数的计数,因此上面len(s)
的结果将为4
。
字符串中的任何字符都可以通过使用方括号内0
和len(s)-1
之间的整数对其进行索引来随机访问,以便引用您使用s[2]
的第三个字符。将索引视为偏移量或字符串开头的字符非常有用。
即便如此,在Python中使用索引通常需要 ,因为您还可以迭代处理for
循环中字符串中的每个字符,而不使用它们,如下面的简单示例所示:
num_vowels = 0
for ch in s:
if ch in 'aeiou':
num_vowels += 1
print 'there are', num_vowels, 'vowel(s) in the string', s
Python还有许多其他工具和内置函数,可以在处理字符串时进一步提供帮助(实际上可以简化上面的示例),随着您对该语言及其众多库的熟悉,您最终将学习它。 / p>
答案 1 :(得分:1)
当您迭代字符串时,它会返回单个字符,如
for c in thestring:
print(c)
如果你真的需要,可以使用它来将字母放入列表中,这将保留其顺序,但list(string)
是更好的选择(请注意dict或set等无序类型不保证任何订单)。
答案 2 :(得分:1)
你不必做任何这些;在Python中,您可以使用方括号访问字符串的字符:
>>> word = "word"
>>> print(word[0])
w
>>> print(word[3])
d
>>> print(len(word))
4
答案 3 :(得分:0)
您不希望将每个字母分配给单独的变量。然后你就会编写你的程序的其余部分,甚至不知道你定义了多少变量!这比一次处理整个字符串更糟糕。
您想要做的只是一个变量保存字符串,但您可以使用索引来引用其中的单个字符。假设字符串在s
,然后s[0]
是第一个字符,s[1]
是第二个字符,等等。你可以通过检查{{1}来找出数字的走多远(因为索引从0开始,长度为1的字符串具有最大索引0,长度为2的字符串具有最大索引1,等等。)
这比计算如何生成len(s) - 1
变量名称,将它们全部分配给字符串的一部分,然后知道需要引用哪些变量更易于管理。
字符串是不可变的,所以你不能指定到len(s)
来改变第二个字符。如果您需要这样做,您可以创建一个列表,例如: s[1]
。然后l = list(s)
是第二个字符,您可以指定l[1]
来更改列表中的元素。然后,当你完成后,你可以用l[1] = something
得到一个新的字符串(s_new = ''.join(l)
通过将一个字符串序列连接在一起构建一个字符串,使用在左边调用的字符串作为序列中每个元素之间的分隔符;在这种情况下,我们使用空字符串作为分隔符加入单字符字符串列表,因此我们只需将所有单字符字符串连接成一个字符串)
答案 4 :(得分:0)
x = 'test'
counter = 0
while counter < len(x):
print x[counter] # you can change this to do whatever you want to with x[counter]
counter += 1