2012-11-17 16 views
15

Tôi mới với trăn, tôi đang sử dụng python 2.7 khi tôi gõ này trên vỏ python:Làm thế nào để giải thích python số với zero hàng đầu

print 01 
print 010 
print 0100 
print 01000 

Nó cho kết quả này

1 
8 
64 
512 

Tôi đã cố gắng để hiểu tại sao nó đã cho rằng nhưng tiếc là tôi đã không nhận được điểm.

+0

để in ra những con số cụ thể (nếu bắt đầu với 0), chỉ sử dụng chúng như chuỗi: 'in '01'' ' in' 010'' vv –

Trả lời

20

Nếu một số bắt đầu với 0, nó được xem như là bát phân, hoặc cơ sở 8. Chỉ cần làm:

print 1 
print 10 
print 100 
print 1000 

Và vấn đề của bạn sẽ được giải quyết.

Thông tin thêm về bát phân: http://en.wikipedia.org/wiki/Octal

Dưới đây là một cách để hiểu bát phân dễ dàng hơn:

bát phân 1 là số thập phân (số bình thường) 1

bát phân 2: số thập phân 2

...

bát phân 7: số thập phân 7

bát phân 10: decimal 8

bát phân 11: decimal 9

bát phân 12: decimal 10

...

bát phân 17: decimal 15

bát phân 20: decimal 16

v.v. Octal chỉ sử dụng các chữ số từ 0 đến 7.

Hy vọng điều này sẽ hữu ích!

+0

cảm ơn bạn, rất nhiều –

+0

@BassamBadr bạn được hoan nghênh ! – Doorknob

+5

Bằng cách này, điều này chỉ đúng cho Python 2. Trong Python 3, tiền tố '0o' là bắt buộc; một '0' hàng đầu của chính nó là một' Cú pháp Cú pháp '. Ngoài ra, bạn nên nói rằng số bát phân chỉ sử dụng * chữ số * từ 0 đến 7. –

10

Python giải thích một số bắt đầu với 0 như octal đó là base 8 .Bạn có thể làm việc ra các cơ sở sử dụng các chuỗi nhị phân 10 như b^1 === b nơi b là cơ sở.

# print the decimal value of the binary number 10 
>>> print 0b10 
2 
# print the decimal value of the octal number 10  
>>> print 010 
8 
# print the decimal value of the hexadecimal number 10 
>>> print 0x10 
16 

Trong bất kỳ cơ sở biểu tượng 1 luôn là decimal giá trị 1b^0 === 1 cho tất cả b như đọc phải sang trái chỉ số của một số bắt đầu từ 0.

# print the decimal value of the binary number 1 
>>> print 0b001 
1 
# print the decimal value of the octal number 1 
>>> print 0001 
1 
# print the decimal value of the hexadecimal number 1 
>>> print 0x001 
1 

Một khi cơ sở được giải thích (0, 0b, 0x) dẫn 0 là không quan trọng.

Số lượng ký tự cần thiết cho một cơ sở là b nơi những biểu tượng lớn nhất là tương đương với b-1

  Base (b) Number of Symbols (b) Symbols (0 : b-1) 
Binary  2   2      0,1 
Octal  8   8      0,1,2,3,4,5,7,6,7 
Decimal  10   10      0,1,2,3,4,5,7,6,7,8,9 

Giá trị lớn nhất mà có thể được đại diện bởi một số là (b^n)-1 nơi n là số chữ số. Với một số có 3 chữ số thập phân giá trị lớn nhất là (10^3)-1 = 999, trong bát phân (8^3)-1 = 511 (decimal) đó là 777 trong cơ sở 8 và trong hệ nhị phân (2^3)-1 = 7 (decimal) đó là 111 tại cơ sở 2. Vì vậy, bạn có thể thấy rằng với các biểu tượng ít (cơ sở thấp hơn) giá trị bạn có thể biểu thị số lần giảm cho một số chữ số cố định.

Các vấn đề liên quan