1. 程式人生 > >python自學群裏遇到的小題匯總

python自學群裏遇到的小題匯總

索引 規律 作用 logs 結束 images 是不是 第一個 題目

題目一:

請使在3秒內計算出一組的數據,偶數在奇數前(註意不使用for while等循環的方法)
格式如下
1,2,3,4,5,6,7,8,9,10
輸出結果是
2,1,4,3,6,5,8,7,10,9

解決思路:既然不能用for與while去寫循環判斷,那麽我們就從位置替換的方式處理。只要跟位置相關,首先我們要想到的就是下標及索引。代碼如下:

技術分享

data[0::2]的意思是從data列表的第1位也就是數字1開始::意思到結束位置,2就是第一個數與第二個數相隔兩位取,就是取奇數1,3,5,7,9,如下圖:

技術分享

data[1::2]的意思是從data列表的第2位也就是數字2開始::意思到結束位置,2就是第一個數與第二個數相隔兩位取,就是取偶數2,4,6,8,10如下圖:

技術分享

tmp這裏在這裏的作用是臨時存放區,這和冒泡排序的方法很類似。通過中間存放奇數,把偶數向前整體移動一位,在把臨時存放數據拉回來放到偶數位置及完成。

題目二:

豎著打印輸出如下格式(不要用第三方庫):

1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

解決思路:首先你要想到程序是一行一行向下執行,程序一般是有規律可行,其實仔細發現,他們中間的差值其實都是4,只要你發現這個,這題也就不難解。代碼如下:

技術分享

這裏一看是不是就恍然大悟,他們之間的差值4可以用range的步數控制,第一行打印出來就是1,5,9,13在仔細看第二行,對比第一行就是數字加1,那麽我們利用python默認range是從0起始這個特點,剛好每行相加就可以實現豎著打印,在第二層for循環每次結束,print會幫我們換行做控制及可完成。

會不定期的更新一些題目和解決思路。

也歡迎大家給我私信一起探討一些方法技巧。

最後感謝大家觀看!!!

python自學群裏遇到的小題匯總