2012-10-04 87 views
5

Tôi không biết cách nhân lên trong python.Phép nhân trong Python

Nếu tôi làm điều này:

price = 1 * 9 

Nó sẽ xuất hiện như thế này:

111111111 

Và câu trả lời cần phải được 9 (1x9=9)

Làm thế nào tôi có thể làm cho nó nhân một cách chính xác ?

+0

"Multiply" là từ bạn tìm kiếm. – dkamins

Trả lời

3

Sử dụng số nguyên thay vì chuỗi.

hãy chắc chắn để đúc chuỗi của bạn để ints

price = int('1') * 9

Đoạn mã ví dụ thực tế mà bạn đăng sẽ trở 9 không 111111111

0
In [58]: price = 1 *9 
In [59]: price 
Out[59]: 9 
11

Chỉ khi bạn nhân số nguyên với một chuỗi, bạn sẽ nhận được chuỗi lặp lại ..

Bạn có thể sử dụng phương thức nhà máy int() để tạo ra số nguyên ra khỏi hình thức chuỗi các số nguyên ..

>>> int('1') * int('9') 
9 
>>> 
>>> '1' * 9 
'111111111' 
>>> 
>>> 1 * 9 
9 
>>> 
>>> 1 * '9' 
'9' 
  • Nếu cả toán hạng là int, bạn sẽ nhận được nhân trong số họ là int.
  • Nếu toán hạng đầu tiên là chuỗi và thứ hai là int .. Chuỗi của bạn sẽ được lặp lại nhiều lần, làm giá trị trong toán hạng số nguyên thứ hai của bạn.
  • Nếu toán hạng đầu tiên là số nguyên, và thứ hai là chuỗi, sau đó bạn sẽ nhận được nhân lên của cả hai con số ở dạng chuỗi ..
+1

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

7

Đó là sự khác biệt giữa các chuỗi và số nguyên. Xem:

>>> "1" * 9 
'111111111' 

>>> 1 * 9 
9 
+0

oooowwwww đã hiểu! – user1704332

1

Nên hoạt động:

In [1]: price = 1*9 

In [2]: price 
Out[2]: 9 
1

Tôi nghĩ bạn đang nhầm lẫn về các loại đây. Bạn sẽ chỉ nhận được kết quả đó nếu bạn nhân một chuỗi. Bắt đầu phiên dịch viên và thử cách này:

>>> print "1" * 9 
111111111 
>>> print 1 * 9 
9 
>>> print int("1") * 9 
9 

Vì vậy, hãy đảm bảo toán hạng đầu tiên là số nguyên (không phải chuỗi) và nó sẽ hoạt động.

1

Bạn không thể nhân một số nguyên cho một chuỗi. Để chắc chắn, bạn có thể thử bằng cách sử dụng int (viết tắt của số nguyên có nghĩa là toàn bộ số) lệnh, như thế này ví dụ -

firstNumber = int(9) 
secondNumber = int(1) 
answer = (firstNumber*secondNumber) 

Hy vọng rằng sẽ giúp :)

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