python實現(xiàn)進制轉化的示例代碼
做題思路
(1)掌握十進制轉化為其他進制的方法 (2)分析和解決如何將整數和小數分離,以及他們的存儲方式。(3)如何設計python函數去實現(xiàn)它們 (4)了解輾轉相除法和列表如何運用
提示:以下是本篇文章正文內容,下面案例可供參考
一、運用的知識點
(1)鍵盤輸入函數,列表和類型轉化 (2)運算符的理解(/ 和 //的區(qū)別) (3) 輾轉相除法求余數 (4)棧和隊列的知識
二、例題展示
1.題目
代碼如下(示例):
輸入一個自然數,輸出它的二進制、八進制、十六進制表示形式
2.代碼
代碼如下(示例):
# 自然數 = 十進制數
print("----------------------")
print("------ 0.小數 -------")
print("------ 1.整數 -------")
flag = int(input())
# 初始化a,b的值
a = 0
b = 0.0
x = ""
# 判斷是否為小數或者整數
if flag == 0:
x = input("請任意輸入一個小數:")
# a為整數部分,b為小數部分
a = int(float(x))
b = float(x) - a
elif flag == 1:
x = input("請任意輸入一個整數:")
a = int(x)
else:
print("輸入格式錯誤")
"""
三者都是用輾轉相除法求解
"""
list_en = ['A','B','C','D','E','F']
list_1 = [] # 收集整數部分
list_2 = [] # 收集小數部分
list_3 = [] # 收集整數部分
list_4 = [] # 收集小數部分
list_5 = [] # 收集整數部分
list_6 = [] # 收集小數部分
# 求二進制數
def fun_two(n,m):
if m == 0.0: #整數部分
while n != 0:
i = n % 2
list_1.insert(0,i) # 類似于壓棧
n = n // 2
else :
count = 0
while n != 0:
i = n % 2
list_1.insert(0,i) # 類似于壓棧
n = n // 2
while count != 10:
m = m * 2
j = int(m)
m = m - j
list_2.append(j)
count = count + 1
# 求八進制數
def fun_eight(n, m):
if m == 0.0: # 整數部分
while n != 0:
i = n % 8
list_3.insert(0, i) # 類似于壓棧
n = n // 8
else:
count = 0
while n != 0:
i = n % 8
list_3.insert(0, i) # 類似于壓棧
n = n // 8
while count != 10:
m = m * 8
j = int(m)
m = m - j
list_4.append(j)
count = count + 1
# 求十六進制數
def fun_sixteen(n, m):
if m == 0.0: # 整數部分
while n != 0:
i = n % 16
list_5.insert(0, i) # 類似于壓棧
n = n // 16
else:
count = 0
while n != 0:
i = n % 16
list_5.insert(0, i) # 類似于壓棧
n = n // 16
while count != 10:
m = m * 16
j = int(m)
m = m - j
list_6.append(j)
count = count + 1
print("yes")
def print_str(list1):
s = ""
for item in list1:
if item == '.':
item = '.'
elif int(item) > 10:
l = item - 10
item = list_en[l]
s = s + str(item)
return s
# 二進制求解
fun_two(a,b)
# 八進制求解
fun_eight(a,b)
# 十六進制求解
fun_sixteen(a,b)
list_1.append('.')
list_1.extend(list_2)
list_3.append('.')
list_3.extend(list_4)
list_5.append('.')
list_5.extend(list_6)
s_two = print_str(list_1)
s_eight = print_str(list_3)
s_sixteen = print_str(list_5)
# 測試結果
if __name__ == '__main__':
print(a)
print(b)
print(type(a))
print(type(b))
print(list_1)
print(list_3)
print(list_5)
print("二進制值:", end = "")
print(s_two)
print("八進制值:", end="")
print(s_eight)
print("十六進制值:", end="")
print(s_sixteen)
總結
結果展示:




到此這篇關于python實現(xiàn)進制轉化的示例代碼的文章就介紹到這了,更多相關python 進制轉化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)批量填補遙感影像的無效值NoData
這篇文章主要為大家介紹了如何基于Python中ArcPy模塊,對大量柵格遙感影像文件批量進行無效值(NoData值)填充的方法,感興趣的小伙伴可以了解一下2023-06-06
Python 提取dict轉換為xml/json/table并輸出的實現(xiàn)代碼
這篇文章主要介紹了Python 提取dict轉換為xml/json/table并輸出的實現(xiàn)代碼,需要的朋友可以參考下2016-08-08
Python標準庫之循環(huán)器(itertools)介紹
這篇文章主要介紹了Python標準庫之循環(huán)器(itertools)介紹,本文講解了無窮循環(huán)器、函數式工具、組合工具、groupby()、其它工具等內容,需要的朋友可以參考下2014-11-11
在前女友婚禮上用python把婚禮現(xiàn)場的WIFI名稱改成了
大家好,我是Lex 喜歡欺負超人那個Lex 擅長領域:python開發(fā),網絡安全滲透,Windows域控Exchange架構 今日重點:python暴力拿下WiFi密碼;python拿下路由器管理頁面 代碼干貨滿滿,建議收藏+實操!有問題及需要,請留言哦2021-08-08

