大写和小写字母交替

时间:2019-01-25 14:26:26

标签: python

我的代码需要帮助。它基本上需要一个输入,然后以替代字符为大写的方式输出字符串。

我需要一种将所有字符收集到一个变量中的方法

newString = input("Please enter a word ")
output = newString 
letters =len(output)
b = 0

while b < letters:
if b%2 == 0:
    printonelower=output[b].lower()
else:
    printoneupper=output[b].upper()
b = b+1


print(output)
print(letters)
print(printonelower + printoneupper)'

7 个答案:

答案 0 :(得分:1)

如果我正确理解,您会想要以下内容:

letters = "hello"
upper = True
new_letters = []
for l in letters:
    if upper:
        new_letters.append(l.lower())
        upper = False
    else:
        new_letters.append(l.upper())
        upper = True
new_letters = "".join(new_letters)
print(new_letters)

这将返回hElLo

答案 1 :(得分:1)

好的,我们也玩得开心:

words = "this is a test"
result = "".join([str.upper, str.lower][i % 2](c) for i, c in enumerate(words))
print(results)

答案 2 :(得分:0)

这样的事情怎么办?

output = "wonderful" 
letters = len(output)
b = 0
word = []

while b < letters:
    if b % 2 == 0:
        word.append(output[b].lower())
    else:
        word.append(output[b].upper())
    b = b+1

print(''.join(word))

这将返回wOnDeRfUl

答案 3 :(得分:0)

完成同一任务的另一种方法是存储要在字符串上调用的函数的可迭代对象,并使用itertools.cycle反复遍历它

from itertools import cycle

def apply_by_character(s, funcs=(str.upper, str.lower)):
    return "".join([f(c) for c, f in zip(s, cycle(funcs))])

print(apply_by_character('transition'))
# TrAnSiTiOn

答案 4 :(得分:0)

您可以执行以下操作。

letters="this is a test"
x=0
for i in letters:print(end=(2*i).title()[x]);x^=i.isalpha()

输出

ThIs Is A tEsT

答案 5 :(得分:0)

使用genexpression的一行

>>> input_string = 'Blahfasel'
>>> ''.join((c.upper() if i % 2 == 0 else c.lower() for i, c in enumerate(input_string)))
'BlAhFaSeL'

答案 6 :(得分:0)

假定给定的字符串都像小写的“ string”一样,我们必须将其转换为“ StRiNg”或“ sTrInG”之类的字符串。

所以我们可以这样写:

使用 input()方法获取输入,并使用 enumerate()函数在每次迭代中保留输入字符串中每个字母的索引

使用 python3:

for index,letter in enumerate(input()): #input : 'string' or 'STRING'
    print(letter.upper() if index%2 == 0 else letter.lower() , end="") # ternary operator 
#output : 'StRiNg'


for index,letter in enumerate(input()): #input : 'string' or 'STRING'
    print(letter.lower() if index%2 == 0 else letter.upper() , end="") # ternary operator
#output : 'sTrInG'