[英]Why am I not getting any output in the below code?
編譯代碼時沒有錯誤。 我將函數稱為: pattern('abc')
。 預期輸出為'A-Bb-Ccc'
def pattern(s):
v = []
v = list(s)
strlen = len(v)
i = 0
cntr = 0
strng = []
while i < strlen:
j = 0
while j <= i:
if j == 0:
strng.append(v[i].upper())
else:
strng.append(v[i])
j += 1
strng.append('-')
i += 1
z = ''.join(strng)
return z
使用UPDATE enumerate
,而不是zip
source = 'abc'
'-'.join([(x*i).capitalize() for i, x in enumerate(source, 1)])
source = 'abc'
'-'.join([(x*i).capitalize() for x,i in zip(source, range(1, len(source)+1))])
一些解釋:
zip(source, range(1, len(source)+1))
創建對(a,1), (b,2), (c,3)
x*i
表示串聯,即a*3
生成字符串aaa
aaa.capitalize()
將首字母大寫
'-'.join(a_list)
使用-
作為分隔符連接a_list
元素
您沒有打印聲明。 要測試,請填寫
print(z)
另外,您還必須將return放在while循環之外。
首先,您需要縮進return z
因此它不在任何循環中:
def pattern(s):
#Rest of the code
return z
然后,您需要將函數的結果分配給變量並打印:
result = pattern('abc')
print result
或者,您可以執行更直接的方法:
print pattern('abc')
您有一個無限循環。 您需要在內部while
循環j
遞增,否則如果您在修復縮進后調用print(pattern("abc"))
,則j
總是小於i
,它應該返回您要查找的內容。
TL; DR,在j+=1
之前添加縮進
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.