2014-01-30 234 views
1

能有人請解釋Python程序的這些行對我來說:二進制到十進制和十進制到二進制轉換器

b =input("What number would you like to convert into Binary? ") 
convert = lambda d: bin(int(d)) [2:] 
print(b + " is " + convert(b) + " in Binary") 

而且還幾行代碼:

b = input("What Binary number would you like to convert into Decimal? ") 
convert= lambda b: str(int(b, 2)) 
print(b + " is " + convert(b) + " in Decimal") 
+0

哪一部分你不聯合derstand? lambda表達式? –

+2

對於那些(像我)想知道什麼在地球上denary意味着:大多數人稱這個數字系統十進制(即,基數10):) – fvu

+0

FWIW,我編輯了標題,並改變了denary/dinery到十進制。 – Macke

回答

2

lambda表達方式定義一個簡短的函數,例如

f = lambda x: x**2 # e.g. f(2) == 4 

相當於

def f(x): 
    return x**2 

int(d)轉換d成整數。 bin(...)需要的是整數,並將其轉換成二進制字符串,它看起來像:

bin(int(3)) == '0b11' 

注意的是,前兩個字符,0b,是不是真的號碼的一部分,所以我們使用切片表示法[2:]從返回的一切索引2起:

'0b11'[2:] == '11' 

最後,可選的第二個參數int設置應該用於轉換參數中的基座;在這種情況下,基地2(二進制):

int('11', 2) == 3 

您可以使用此爲其他基地也一樣,例如16(十六進制):

int('11', 16) == 17 
0

十進制轉換爲二進制:

bin(124) 

這將給值'0b1111100'
二進制到十進制:

int('0b1111100', 2) 

這將給值124