請使在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中的題目實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!