python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)
生活随笔
收集整理的這篇文章主要介紹了
python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 斐波那契數(shù)列
- 阿姆斯特朗數(shù)
- 十進制轉二進制bin、八進制oct、十六進制hex
- 補充進制轉換源碼
- python中::和:的區(qū)別
說明:本篇博文的知識點大部分來自 Python3 實例
斐波那契數(shù)列
下面代碼實現(xiàn)了判斷用戶輸入值,只有輸入為大于等于1的正整數(shù)時,才會打印結果。
網上看到的是使用while的一種方式,我這里自己實現(xiàn)了一種使用for循環(huán)的方式。相比而言,代碼更簡潔一些。
運行結果:
阿姆斯特朗數(shù)
如果一個n位正整數(shù)等于其各位數(shù)字的n次方之和,則稱該數(shù)為阿姆斯特朗數(shù)。
例如33 + 73 + 03 = 370。
上代碼:
這里提一下//和/的區(qū)別。//表示整數(shù)的除法,結果也是整數(shù)。/表示浮點數(shù)的除法,結果是浮點數(shù)。
代碼中,我盡量對一些代碼進行了簡化,這也是python的特點之一,代碼簡潔。
運行結果:
十進制轉二進制bin、八進制oct、十六進制hex
有現(xiàn)成的方法可以對類型進行轉換,詳見代碼:
try:num = int(input("請輸入一個整數(shù):"))print("十進制數(shù)為:", num)print("轉換為二進制為:", bin(num))print("轉換為八進制為:", oct(num))print("轉換為十六進制為:", hex(num)) except ValueError:print("請輸入一個整數(shù)")
能直接轉換出結果,簡單快捷。
補充進制轉換源碼
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))運行結果:
python中::和:的區(qū)別
lst1 = [1, 2, 3, 4, 5] # lst1[::-1]相當于 lst1[-1:-len(lst1)-1:-1],也就是從最后一個元素到第一個元素復制一遍,即倒序。 print(lst1[::-1]) # lst1[:-1]相當于 lst1[-5:-1],也就是從最后一個元素到第一個元素。 print(lst1[:-1]) # lst1[:1]相當于 lst1[0:1],也就是從第一個元素到第二個元素。 print(lst1[:1]) # lst1[::1]相當于 lst1[1:len(lst1)-1:1],也就是從第一個元素到最后一個元素復制一遍,即順序。 print(lst1[::1])在代碼中已經有詳細說明,這里總結一下
::-1表示逆序, ::1表示順序。 :-1表示-len到-1,:1表示0到1運行結果:
總結
以上是生活随笔為你收集整理的python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 998的比亚迪秦PLUS DM-i多能跑
- 下一篇: python学习-综合练习四(最大公约数