python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)
文章目錄
- 斐波那契數(shù)列
- 阿姆斯特朗數(shù)
- 十進(jìn)制轉(zhuǎn)二進(jìn)制bin、八進(jìn)制oct、十六進(jìn)制hex
- 補(bǔ)充進(jìn)制轉(zhuǎn)換源碼
- python中::和:的區(qū)別
說(shuō)明:本篇博文的知識(shí)點(diǎn)大部分來(lái)自 Python3 實(shí)例
斐波那契數(shù)列
下面代碼實(shí)現(xiàn)了判斷用戶輸入值,只有輸入為大于等于1的正整數(shù)時(shí),才會(huì)打印結(jié)果。
 網(wǎng)上看到的是使用while的一種方式,我這里自己實(shí)現(xiàn)了一種使用for循環(huán)的方式。相比而言,代碼更簡(jiǎn)潔一些。
運(yùn)行結(jié)果:
 
阿姆斯特朗數(shù)
如果一個(gè)n位正整數(shù)等于其各位數(shù)字的n次方之和,則稱該數(shù)為阿姆斯特朗數(shù)。
 例如33 + 73 + 03 = 370。
 上代碼:
這里提一下//和/的區(qū)別。//表示整數(shù)的除法,結(jié)果也是整數(shù)。/表示浮點(diǎn)數(shù)的除法,結(jié)果是浮點(diǎn)數(shù)。
代碼中,我盡量對(duì)一些代碼進(jìn)行了簡(jiǎn)化,這也是python的特點(diǎn)之一,代碼簡(jiǎn)潔。
運(yùn)行結(jié)果:
 
十進(jìn)制轉(zhuǎn)二進(jìn)制bin、八進(jìn)制oct、十六進(jìn)制hex
有現(xiàn)成的方法可以對(duì)類型進(jìn)行轉(zhuǎn)換,詳見代碼:
try:num = int(input("請(qǐng)輸入一個(gè)整數(shù):"))print("十進(jìn)制數(shù)為:", num)print("轉(zhuǎn)換為二進(jìn)制為:", bin(num))print("轉(zhuǎn)換為八進(jìn)制為:", oct(num))print("轉(zhuǎn)換為十六進(jìn)制為:", hex(num)) except ValueError:print("請(qǐng)輸入一個(gè)整數(shù)")
 能直接轉(zhuǎn)換出結(jié)果,簡(jiǎn)單快捷。
補(bǔ)充進(jìn)制轉(zhuǎn)換源碼
def dec2bin(num1):len1 = []if num1 < 0:return '-' + dec2bin(abs(num1))while True:num1, remainder = divmod(num1, 2)len1.append(str(remainder))if num1 == 0:return ''.join(len1[::-1])def dec2oct(num):len1 = []if num < 0:return '-' + dec2oct(abs(num))while True:num, remainder = divmod(num, 8)len1.append(str(remainder))if num == 0:return ''.join(len1[::-1])base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]def dec2hex(num):len1 = []if num < 0:return '-' + dec2hex(abs(num))while True:num,rem = divmod(num, 16)len1.append(base[rem])if num == 0:return ''.join(len1[::-1])print('dec2bin(100) = ', dec2bin(100)) print('dec2oct(100) = ', dec2oct(100)) print('dec2hex(100) = ', dec2hex(100))運(yùn)行結(jié)果:
 
python中::和:的區(qū)別
lst1 = [1, 2, 3, 4, 5] # lst1[::-1]相當(dāng)于 lst1[-1:-len(lst1)-1:-1],也就是從最后一個(gè)元素到第一個(gè)元素復(fù)制一遍,即倒序。 print(lst1[::-1]) # lst1[:-1]相當(dāng)于 lst1[-5:-1],也就是從最后一個(gè)元素到第一個(gè)元素。 print(lst1[:-1]) # lst1[:1]相當(dāng)于 lst1[0:1],也就是從第一個(gè)元素到第二個(gè)元素。 print(lst1[:1]) # lst1[::1]相當(dāng)于 lst1[1:len(lst1)-1:1],也就是從第一個(gè)元素到最后一個(gè)元素復(fù)制一遍,即順序。 print(lst1[::1])在代碼中已經(jīng)有詳細(xì)說(shuō)明,這里總結(jié)一下
::-1表示逆序, ::1表示順序。 :-1表示-len到-1,:1表示0到1運(yùn)行結(jié)果:
 
總結(jié)
以上是生活随笔為你收集整理的python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 998的比亚迪秦PLUS DM-i多能跑
- 下一篇: 女生靠摆地摊还清百万负债 还有人两周赚1
