e = 'NewCamelCaseWord'
new_word = []
def snake_case_formatter(c, sep='-'):
for i in list(c):
if i.isupper():
new_word.append(sep)
i = i.lower()
new_word.append(i)
else:
if new_word[0] == sep:
del new_word[0]
word = ''.join(new_word)
return word
嗨,这是我的代码,用于将驼峰式案例函数名称更改为蛇形案例。创建此函数时,我通过将字符串更改为列表,然后在大写字母前的空格中添加空格来完成此操作,但这也意味着在单词开头之前会有一个空格。这意味着当我使用破折号作为分隔符将字符串连接在一起时,函数名称的开头会出现一个破折号。我通过删除else函数中的第一个字符来解决了该问题。如何使循环跳过首字母(如果是大写字母)?我试过像这样继续使用
:def snake_case_formatter(c, sep='-'):
for i in list(c):
if i.isupper():
if i[0]:
continue
new_word.append(sep)
i = i.lower()
new_word.append(i)
else:
word = ''.join(new_word)
return word
但是它只是弄乱了代码。因此,我认为它与缩进有关,但是我不确定我应该如何格式化它。
编辑:我想知道如何使用Continue来跳过字符串中第一个字母之前的空格,而不必随后删除
答案 0 :(得分:1)
在for i in list(c):
中,变量i
是列表的元素,而不是其索引。它不再具有有关当前索引的信息。
i[0]
试图访问i
的第一个元素,这可能没有多大意义。
Python提供了enumerate
函数,用于遍历元素及其索引:
for index, i in enumerate(list(c))
然后index
是循环中的当前索引,您可以将其与0
进行比较,例如与if index==0:
进行比较。
答案 1 :(得分:0)
请检查以下代码以获取期望的解决方案:
e = 'CamelCaseWord'
new_word = []
range(len(e))
def snake_case_formatter(c, sep='-'):
for i in range(len(e)):
if i==0 and e[i].isupper():
continue
elif e[i].isupper()==True:
new_word.append('-' + e[i].lower())
else:
new_word.append(e[i])
print(''.join(new_word))
snake_case_formatter(e)