我正在try 编写一个函数,它将接受一个句子,并使每个奇数字母成为大写字母,每个偶数字母成为小写字母.

以下是我try 的内容:

def my_func(st):
    res = []
    for index, c in enumerate(st):
        if index % 2 == 0:
            res.append(c.upper())
        else:
            res.append(c.lower())
    return ''.join(res)
print(my_func(Sentence))

当输入为"Hello my guy"时,输出为"HeLlO My gUy",而不是"HeLlO mY gUy",因为它将空白作为字母计算,我能做什么?

推荐答案

我会这样写:

from itertools import cycle

def my_func(st):
    operation = cycle((str.upper, str.lower))
    conv = [next(operation)(c) if c != ' ' else c for c in st]
    return ''.join(conv)

演示:

>>> my_func("Hello my guy")
'HeLlO mY gUy'

Python相关问答推荐

滚动和,句号来自Pandas列

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

基于字符串匹配条件合并两个帧

在Mac上安装ipython

删除字符串中第一次出现单词后的所有内容

如何在Raspberry Pi上检测USB并使用Python访问它?

Scrapy和Great Expectations(great_expectations)—不合作

需要帮助重新调整python fill_between与数据点

Flash只从html表单中获取一个值

幂集,其中每个元素可以是正或负""""

将标签移动到matplotlib饼图中楔形块的开始处

人口全部乱序 - Python—Matplotlib—映射

Python避免mypy在相互引用中从另一个类重定义类时失败

干燥化与列姆化的比较

Pandas—MultiIndex Resample—我不想丢失其他索引的信息´

删除Dataframe中的第一个空白行并重新索引列

PYTHON中的selenium不会打开 chromium URL

时间戳上的SOAP头签名无效

Django查询集-排除True值

运行从Airflow包导入的python文件,需要airflow实例?