零基礎入門學習python_015_筆記及作業_字串_格式化
字串的格式化:
作業:編寫一個進制轉換器
==============================以下為程式碼==============================
q = True
while q:
num = input('請輸入一個整數(輸入Q結束程式):')
if num != 'Q':
num = int(num)
print('十進位 -> 十六進位 : %d -> 0x%x' % (num, num))
print('十進位 -> 八進制 : %d -> 0o%o' % (num, num))
print('十進位 -> 二進位 : %d -> ' % num, bin(num))
else:
q = False
符 號
|
描述
|
%c
|
格式化字符及其ASCII碼
|
%s
|
格式化字符串
|
%d
|
格式化整數
|
%u
|
格式化無符號整型
|
%o
|
格式化無符號八進制數
|
%x
|
格式化無符號十六進制數
|
%X
|
格式化無符號十六進制數(大寫)
|
%f
|
格式化浮點數字,可指定小數點後的精度
|
%e
|
用科學計數法格式化浮點數
|
%E
|
作用同%e,用科學計數法格式化浮點數
|
%g
|
%f和%e的簡寫
|
%G
|
%f和%E的簡寫
|
%p
|
用十六進制數格式化變量的地址
|
輔助指令
|
描述
|
*
|
定義寬度或者小數點精度
|
-
|
用做左對齊
|
+
|
在正數前面顯示加號( + )
|
<sp>
|
在正數前面顯示空格
|
#
|
在八進位數前面顯示零('0'),在十六進位前面顯示'0x'或者'0X'(取決於用的是'x'還是'X')
|
0
|
顯示的數位前面填充'0'而不是默認的空格
|
%
|
'%%'輸出一個單一的'%'
|
(var)
|
映射變數(字典參數)
|
m.n.
|
m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)
|
作業:編寫一個進制轉換器
==============================以下為程式碼==============================
q = True
while q:
num = input('請輸入一個整數(輸入Q結束程式):')
if num != 'Q':
num = int(num)
print('十進位 -> 十六進位 : %d -> 0x%x' % (num, num))
print('十進位 -> 八進制 : %d -> 0o%o' % (num, num))
print('十進位 -> 二進位 : %d -> ' % num, bin(num))
else:
q = False
========================================================================
上面是甲魚版解答。
理論上課後作業要用課程內容寫,
但是我自己研究過後,
發現python有提供更方便的內建函數幫助我們進行進制轉換,
加上我想把程式寫的更完整一點,
所以決定用自己的寫法寫。
==============================以下為程式碼==============================
print('--------------------進制轉換計算機--------------------')
print('''1. 2進制 計算
2. 8進制 計算
3. 10進制 計算
4. 16進制 計算
5. 終止程式''')
while True:
print('')
cal = input('您選擇的計算機是:')
if int(cal) == 1:
while True:
num = input('請輸入 2進制 的數字:')
if num.isdigit() == True:
if num.find('2') and num.find('3') and num.find('4') and num.find('5') and num.find('6') and num.find('7') and num.find('8') and num.find('9') == -1:
temp = int(num,2)
octal = oct(temp)
octal = octal[2:]
print('2進制的 '+' '+ num + ' 等於')
print('8進制的 '+ octal)
print('10進制的 '+ str(temp))
hexadecimal = hex(temp)
hexadecimal = hexadecimal[2:]
print('16進制的 '+ hexadecimal)
temp = input('''是否繼續使用 2進制計算機?
1. 是
2. 否
請輸入您的選擇:''')
if int(temp) == 1:
continue
elif int(temp) == 2:
break
else:
print('輸入錯誤,強制離開 2進制計算機')
break
else:
print('這不是 2進位 的數字,請重新輸入。')
continue
else:
print('這不是 2進位 的數字,請重新輸入。')
continue
elif int(cal) == 2:
while True:
num = input('請輸入 8進制 的數字:')
if num.isdigit() == True:
if num.find('8') and num.find('9') == -1:
temp = int(num,8)
binary = bin(temp)
binary = binary[2:]
print('8進制的 '+' '+ num + ' 等於')
print('2進制的 '+ binary)
print('10進制的 '+ str(temp))
hexadecimal = hex(temp)
hexadecimal = hexadecimal[2:]
print('16進制的 '+ hexadecimal)
temp = input('''是否繼續使用 8進制計算機?
1. 是
2. 否
請輸入您的選擇:''')
if int(temp) == 1:
continue
elif int(temp) == 2:
break
else:
print('輸入錯誤,強制離開 8進制計算機')
break
else:
print('這不是 8進位 的數字,請重新輸入。')
continue
else:
print('這不是 8進位 的數字,請重新輸入。')
continue
elif int(cal) == 3:
while True:
num = input('請輸入 10進制 的數字:')
if num.isdigit() == True:
binary = bin(int(num))
binary = binary[2:]
print('10進制的 '+' '+ num + ' 等於')
print('2進制的 '+ binary)
octal = oct(int(num))
octal = octal[2:]
print('8進制的 '+ octal)
hexadecimal = hex(int(num))
hexadecimal = hexadecimal[2:]
print('16進制的 '+ hexadecimal)
temp = input('''是否繼續使用 10進制計算機?
1. 是
2. 否
請輸入您的選擇:''')
if int(temp) == 1:
continue
elif int(temp) == 2:
break
else:
print('輸入錯誤,強制離開 10進制計算機')
break
else:
print('這不是 10進位 的數字,請重新輸入。')
continue
elif int(cal) == 4:
print(cal)
elif int(cal) == 5:
print('歡迎再度使用,謝謝!')
break
else:
print('')
print('輸入錯誤,請重新選擇計算機。')
continue
========================================================================
留言
張貼留言