我的代码需要帮助。它基本上需要一个输入,然后以替代字符为大写的方式输出字符串。
我需要一种将所有字符收集到一个变量中的方法
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)'
答案 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'