Collatz 序列、逗號(hào)代碼、字符圖網(wǎng)格實(shí)例
1.collatz序列
編寫(xiě)一個(gè)名為 collatz()的函數(shù),它 有一個(gè)名為 number 的參數(shù)。如果參數(shù)是偶數(shù), 那么 collatz()就打印出 number // 2,并返回該值。如果 number 是奇數(shù),collatz()就打 印并返回 3 * number + 1。 然后編寫(xiě)一個(gè)程序,讓用戶輸入一個(gè)整數(shù),并不斷對(duì)這個(gè)數(shù)調(diào)用 collatz(),直 到函數(shù)返回值1。
#!/usr/bin/env python3 # -*- coding:utf-8 -*- def collatz(number): print(number) if number ==1: return number elif number % 2 ==0: return collatz(number//2) else: return collatz(3*number +1) A = int(input('Input a number: ')) while True: if collatz(A) != 1: continue else: break
輸出結(jié)果:
Input a number: 6 6 3 10 5 16 8 4 2 1
2.逗號(hào)代碼
假定有下面這樣的列表: spam = ['apples', 'bananas', 'tofu', 'cats']
編寫(xiě)一個(gè)函數(shù),它以一個(gè)列表值作為參數(shù),返回一個(gè)字符串。該字符串包含所 有表項(xiàng),表項(xiàng)之間以逗號(hào)和空格分隔,并在最后一個(gè)表項(xiàng)之前插入and。例如,將前面的 spam 列表傳遞給函數(shù),將返回'apples, bananas, tofu, and cats'。但你的函數(shù)應(yīng)該能夠處理傳遞給它的任何列表。
#!/usr/bin/env python3 # -*- coding:utf-8 -*- def func(spam): spam[-1]='and'+ ' ' + spam[-1] for i in range(len(spam)): print(spam[i], end=',') spam = ['apple', 'bananas', 'tofu', 'cats', 'dog'] func(spam) #輸出結(jié)果 apple,bananas,tofu,cats,and dog,
3.字符圖網(wǎng)格
假定有一個(gè)列表的列表,內(nèi)層列表的每個(gè)值都是包含一個(gè)字符的字符串,像這樣:
grid =[['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
你可以認(rèn)為 grid[x][y]是一幅“圖”在 x、y 坐標(biāo)處的字符,該圖由文本字符組成。原點(diǎn)(0, 0)在左上角,向右 x 坐標(biāo)增加,向下 y 坐標(biāo)增加。 復(fù)制前面的網(wǎng)格值,編寫(xiě)代碼用它打印出圖像。
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
#!/usr/bin/env python3 # -*- coding:utf-8 -*- grid = [ ['.', '.', '.', '.', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['O', 'O', 'O', 'O', 'O', '.'], ['.', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['.', '.', '.', '.', '.', '.']] #嵌套循環(huán) for n in range(len(grid[0])): for m in range(len(grid)): print(grid[m][n], end='') print('\n')#換行 #輸出結(jié)果 ..OO.OO.. .OOOOOOO. .OOOOOOO. ..OOOOO.. ...OOO... ....O....
以上這篇Collatz 序列、逗號(hào)代碼、字符圖網(wǎng)格實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python matplotlib擬合直線的實(shí)現(xiàn)
這篇文章主要介紹了python matplotlib擬合直線的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Python實(shí)現(xiàn)獲取域名所用服務(wù)器的真實(shí)IP
本文是給大家分享的使用python獲取到域名所在服務(wù)器的真實(shí)IP,原因是現(xiàn)在很多的網(wǎng)站都使用了CDN,大家很難直接查到域名的服務(wù)器的IP,本文是使用了一個(gè)巧妙的方法,詳情請(qǐng)仔細(xì)看看下文吧2015-10-10Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法
這篇文章主要介紹了Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法,涉及Python針對(duì)文件與目錄的遍歷、復(fù)制等相關(guān)操作技巧,需要的朋友可以參考下2016-09-09python錯(cuò)誤調(diào)試及單元文檔測(cè)試過(guò)程解析
這篇文章主要介紹了python錯(cuò)誤調(diào)試及單元文檔測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python實(shí)現(xiàn)一個(gè)發(fā)送程序和接收程序
這篇文章主要介紹了Python實(shí)現(xiàn)一個(gè)發(fā)送程序和接收程序,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09Python導(dǎo)包模塊報(bào)錯(cuò)的問(wèn)題解決
這篇文章主要介紹了Python導(dǎo)包模塊報(bào)錯(cuò)的問(wèn)題解決,文章圍繞主題相關(guān)內(nèi)容詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03在win64上使用bypy進(jìn)行百度網(wǎng)盤(pán)文件上傳功能
這篇文章主要介紹了在win64上使用bypy進(jìn)行百度網(wǎng)盤(pán)文件上傳功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子
本篇文章主要介紹了python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02Python函數(shù)進(jìn)階之迭代器的原理與使用詳解
能被?next?指針調(diào)用,并不斷返回下一個(gè)值的對(duì)象,叫做迭代器。表示為Iterator,迭代器是一個(gè)對(duì)象類型數(shù)據(jù)。本文將詳細(xì)為大家講講迭代器的原理及使用,感興趣的可以學(xué)習(xí)一下2022-04-04