在不使用正则表达式或函数的情况下拆分大写单词会导致错误无法分配表达式或没有足够的值来解包

问题描述 投票:0回答:1

我正在尝试学习Python。在这种情况下,我需要在遇到大写字母时拆分单词,将其转换为小写字母,然后插入“_”。

我看到了各种相当复杂的答案这里这里这里,但我试图尽可能简单地做到这一点。

到目前为止,这是我的代码:

word = input("What is the camelCase?")

for i , k in word:
    if i.isupper() and k.islower():
        word2 = k + "_" + i.lower + k
        print(word2)
    else:
        print(word)

在我输入单词后,这会导致“

not enough values to unpack (expected 2, got 1)
”。

这里的另一次尝试:

word = input("What is the camelCase?")

for i and k in word:
    if i.isupper() and k.islower():
        word2 = k + "_" + i.lower + k
        print(word2)
    else:
        print(word)

这种情况我连字都写不出来,直接报错:“

cannot assign to expression

python loops iteration camelcasing
1个回答
2
投票

您的方法已经差不多了,但是还有一些问题。让我帮你纠正它们:

  • 迭代word时,需要使用enumerate()来访问 索引和字符。
  • 您试图从每个字符中解压缩两个值,这不是 可能的。相反,您可以将每个字符与其前一个字符进行比较 循环中的一个。

这是代码的更正版本:

word = input("What is the camelCase?")

word2 = ""

for i, char in enumerate(word):
    if i > 0 and char.isupper() and word[i - 1].islower():
        word2 += "_" + char.lower()
    else:
        word2 += char

print(word2)
© www.soinside.com 2019 - 2024. All rights reserved.