當前位置:編程學習大全網 - 編程軟體 - 請Python編程高手幫我解答這個問題

請Python編程高手幫我解答這個問題

程序邏輯存在以下缺陷:

1、沒有使用循環對整個列表進行處理,使得只是處理了第二個元素。按照原程序的思路,

if num < len(my_list):

應該改成

while num < len(my_list):

2、如果改為使用while語句,原程序對列表元素的處理算法存在邏輯錯誤:因為循環到壹個大寫字母後,會在原位置插入空格,再次循環後,會對空格進行處理;移動到下壹個位置後又正好是原來已經處理過得大寫字母。如此,會進入死循環。

請參考以下代碼:

num = 1

while num < len(my_list):

if my_list[num] in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ': # 這種方式更簡潔

my_list[num]=my_list[num].lower() # 轉換成小寫字母

my_list.insert(num, ' ') # 在該位置插入空格

num += 2 # 跳過插入空格及該字母

else:

num += 1

my_str = ''.join(my_list)

  • 上一篇:Servlet中doGet和doPost的區別..
  • 下一篇:python菜鳥求助,使用matplotlib 繪制contour等高線圖,z為2D數組
  • copyright 2024編程學習大全網