官术网_书友最值得收藏!

7.2 實驗驗證

代碼如下:

這個程序中,有四個新的知識點要說明一下:

(1)i**2,兩個乘號連用,表示對前面的數求平方。

(2)str(n),這個函數把參數n轉換成字符串,比如輸入23這個數字,就轉換成了字符'2'和字符'3',這兩個有什么差別,數字就是2,3,不需要加引號,字符就需要加引號。進行這個轉換后,23就成了一個字符序列,所以再求平方的時候,又用int(i)把它轉換成數字。

(3)在定義sadnumber(n,past=set())時,傳入了past=set()這個奇怪的參數。其實這個參數不奇怪,它的意思是第二個參數可以不傳,不傳的情況下,它就默認傳入了一個空的集合。

(4)sum()是系統的求和函數,但是這個函數的參數是通過一個復雜的語句生成的:“int(i)**2 for i in str(n)”,這種方法叫作生成器表達式,這個語句等價于(int(i)**2 for i in str(n)),它生成了一個迭代器,與列表解析式有微妙的差異,這個特性是Python語言中比較高級的特性,讀者可以暫時放在一邊,理解其含義就可以。還是用Python的Console執行一下看看結果:

代碼的含義就是把每個數字的平方和進行累加。

程序執行完以后,我們看看20以內的憂傷的數有1,7,10,13,19,是不是與我們的常識差不多?西方人不喜歡的13也在里面,而我們常常喜歡選的2,6,8都是幸福的數,下次再看到這些數,是不是多了一些感覺?

作業:編程求階乘,并把階乘的結果放進一個表格,打印出來。

主站蜘蛛池模板: 永安市| 江安县| 玉山县| 德昌县| 六盘水市| 丰台区| 太仆寺旗| 谢通门县| 陇南市| 澎湖县| 库车县| 左云县| 玛曲县| 金堂县| 双桥区| 泗水县| 台山市| 雅江县| 社会| 莎车县| 绍兴市| 东辽县| 普兰店市| 罗平县| 逊克县| 岐山县| 大连市| 荔浦县| 左权县| 汪清县| 陆良县| 涿鹿县| 台前县| 石棉县| 林西县| 庐江县| 长岛县| 琼中| 和平区| 秦皇岛市| 肇东市|