Hướng dẫn can you multiply floats and integers in python? - bạn có thể nhân float và số nguyên trong python không?

Theo Python 2, đầu vào hàm thực hiện một eval trên chuỗi đầu vào:

Python 2.7.7 (default, Jun 14 2014, 23:12:13) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2
>>> x
2
>>> type(x)

>>> x*5
10

Và một chiếc phao:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0

Vì nó được coi là không khôn ngoan để lấy mã tùy ý từ người dùng trong một ứng dụng, hành vi này đã được thay đổi theo Python 3.

Theo Python 3, đầu vào luôn trả về một chuỗi:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

Giải thích kết quả của bạn:

>>> x*5
'2.2.2.2.2.'

Nếu bạn muốn có chức năng tương tự một cách an toàn trong Python 3, bạn có thể kết thúc

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

7 trong một cuộc gọi đến AST.Literal_Eval:

>>> from ast import literal_eval
>>> x=literal_eval(input('Enter x: '))
Enter x: 2.2
>>> x
2.2
>>> type(x)

Hoặc, chỉ cần chuyển đổi đầu vào của người dùng thành kiểu dữ liệu mong muốn với

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

8 hoặc
Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

9

Nhân phao trong Python rất dễ dàng. Bạn chỉ cần nhân chúng giống như cách bạn sẽ số nguyên. Kết quả sẽ là một chiếc phao. Nó hoạt động hoàn toàn bằng trực giác. Ví dụ, trong đoạn mã sau, chúng tôi nhân lên các biến float ‘A và và’ B, dẫn đến ‘C, cũng là một chiếc phao.

a = 12.4
b = 5.24
c = a * b
print(c)

Nếu bạn thích bạn cũng có thể in loại cho mỗi biến liên quan. Điều này xác nhận rằng tất cả chúng đều là phao và nó hoạt động chính xác như bạn mong đợi.

a = 12.4
b = 5.24
c = a * b
print(type(a),type(b),type(c))
print(c)

Python hỗ trợ một số loại và hoạt động tích hợp. Hướng dẫn này bao gồm các loại phổ biến nhất, nhưng thông tin về các loại bổ sung có sẵn ở đây

Các loại số cơ bản

Các loại số dữ liệu cơ bản tương tự như các loại được tìm thấy trong các ngôn ngữ khác, bao gồm:

  • Số nguyên (int):int):

  • Giá trị điểm nổi (Float):float):

  • Các giá trị phức tạp (phức tạp):complex):

Thao tác với những hành vi này theo cách bạn mong đợi, vì vậy một thao tác (+, -, /, *, **, v.v.) trên hai giá trị của cùng một loại tạo ra một giá trị khác của cùng một loại, trong khi một hoạt động trên hai giá trị với các giá trị khác nhau Các loại tạo ra giá trị của loại 'nâng cao' hơn:+, -, /, *, **, etc.) on two values of the same type produces another value of the same type, while an operation on two values with different types produces a value of the more ‘advanced’ type:

  • Thêm hai số nguyên cho một số nguyên:

  • Nhân hai chiếc phao cho một chiếc phao:

  • Trừ hai số phức cho một số phức:

    >>> complex(2.,4.) - complex(1.,6.)
    (1-2j)
    

  • Nhân một số nguyên với một chiếc phao cho một chiếc phao:

    >>> 3 * 9.2
    27.599999999999998  # int * float = float
    

  • Nhân một chiếc phao với số phức cho một số phức:

    >>> 2. * complex(-1.,3.)
    (-2+6j)  # float * complex = complex
    

  • Nhân một số nguyên và số phức cho số phức:

    >>> x=input('Enter x: ')
    Enter x: 2.2
    >>> type(x)
    
    >>> x*5
    11.0
    
    0

Tuy nhiên, có một trường hợp điều này xảy ra nhưng không mong muốn và bạn nên biết, đó là sự phân chia của hai số nguyên:

Đây là hành vi được coi là một sai lầm thiết kế khổng lồ và Python 3.x đã được cố định để hành xử như bạn mong đợi (nhiều hơn trên Python 3.x sau đó). Một cách để ngăn chặn điều này là bỏ ít nhất một trong các số nguyên trong bộ phận để nổi:float:

or:

Danh sách, bộ dữ liệu và bộ

Có hai loại trình tự xuất hiện tương tự nhau từ cái nhìn đầu tiên, cả hai đều có thể chứa các loại dữ liệu không đồng nhất:

  • Danh sách (danh sách):list):

    >>> x=input('Enter x: ')
    Enter x: 2.2
    >>> type(x)
    
    >>> x*5
    11.0
    
    1

  • Tuples (tuple):tuple):

    >>> x=input('Enter x: ')
    Enter x: 2.2
    >>> type(x)
    
    >>> x*5
    11.0
    
    2

Sự khác biệt giữa hai loại này là danh sách là có thể thay đổi và các bộ dữ liệu là bất biến:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
3

Có nhiều lý do tại sao Tuples là một tính năng hữu ích (nhanh hơn và có thể băm là hai cái chính), nhưng bây giờ, nó đủ để bạn biết có một sự khác biệt như vậy.

Một hoạt động hữu ích với danh sách và bộ dữ liệu là +, có thể được sử dụng để kết hợp:+, which can be used for concatenation:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
4

Ghi chú

Không giống như các mảng Numpy:

  • Danh sách Python có thể chứa bất cứ điều gì, bao gồm các danh sách, đối tượng hoặc cấu trúc dữ liệu phức tạp khác.
  • Khi bạn cắt một danh sách python, nó sẽ trả về một bản sao.
  • Toán học vector không hoạt động trong danh sách. Ví dụ: nhân một danh sách với int n đưa ra n bản sao của danh sách, thêm một danh sách khác liên kết và nhân với một float gây ra lỗi.n gives n copies of the list, adding another list concatentates, and multiplying by a float gives an error.

Các bộ (bộ) là loại chuỗi thứ ba mà bạn có thể thực hiện từ một tuple hoặc một danh sách:set) are a third type of sequence which you can make from a tuple or a list:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
5

Lưu ý rằng các mục trùng lặp đã được gỡ bỏ. Đây là định nghĩa toán học của một tập hợp, tức là một tập hợp các đối tượng riêng biệt. Thứ tự của các đối tượng là tùy ý (thứ tự không được bảo tồn). Các toán tử khác nhau có thể được sử dụng để biểu diễn các hoạt động đã đặt:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
6

Dây¶

Chuỗi (STR) sẽ quen thuộc từ các ngôn ngữ lập trình khác:str) will be familiar from other programming languages:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
7

Bạn có thể sử dụng một trích dẫn đơn ('), dấu ngoặc kép (") hoặc trích dẫn ba (' '') để gửi một chuỗi (bản cuối cùng được sử dụng cho các chuỗi đa dòng). , bạn có thể sử dụng trích dẫn đối diện để gửi lại chuỗi:'), double quotes ("), or triple quotes (''') to enclose a string (the last one is used for multi-line strings). To include single or double quotes inside a string, you can either use the opposite quote to enclose the string:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
8

Hoặc bạn có thể thoát khỏi họ:

>>> x=input('Enter x: ')
Enter x: 2.2
>>> type(x)

>>> x*5
11.0
9

Bạn có thể truy cập các ký tự riêng lẻ hoặc khối nhân vật:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

0

Lưu ý rằng các chuỗi là bất biến (như bộ dữ liệu), đó là bạn không thể thay đổi giá trị của một số ký tự nhất định mà không tạo ra một chuỗi mới:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

1

Đối với danh sách và bộ dữ liệu, kết hợp được thực hiện với +:+:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

2

Cuối cùng, các chuỗi có nhiều phương pháp liên quan đến chúng, đây là một vài ví dụ:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

3

Từ điển bài

Một trong những loại còn lại là từ điển (dict) mà bạn có thể nghĩ là bảng tra cứu:dict) which you can think of as look-up tables:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

4

Một lưu ý về các đối tượng Python

Hầu hết mọi thứ trong Python là đối tượng. Nhưng một đối tượng là gì?

Mỗi hằng số, biến hoặc chức năng trong Python thực sự là một đối tượng có loại và các thuộc tính và phương thức liên quan. Một thuộc tính Một thuộc tính của đối tượng mà bạn nhận được hoặc đặt bằng cách đưa ra + DOT +, ví dụ: Img.Shape. Một phương thức là một hàm mà đối tượng cung cấp, ví dụ: img.argmax (trục = 0) hoặc img.min ().img.shape. A method is a function that the object provides, for example img.argmax(axis=0) or img.min().

Sử dụng hoàn thành tab trong ipython để kiểm tra các đối tượng và bắt đầu hiểu các thuộc tính và phương thức. Để bắt đầu, hãy tạo danh sách 4 số:

Điều này sẽ hiển thị các thuộc tính và phương thức có sẵn cho danh sách Python a. Sử dụng -Completion và trợ giúp là một cách rất hiệu quả để học và sau đó hãy nhớ các phương thức đối tượng!a. Using -completion and help is a very efficient way to learn and later remember object methods!

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

5

Đối với hầu hết các phần, bạn có thể bỏ qua tất cả những thứ bắt đầu bằng __ vì chúng thường là các phương pháp nội bộ không được gọi trực tiếp. Cuối cùng, bạn thấy các chức năng trông hữu ích như nối hoặc sắp xếp mà bạn có thể nhận được trợ giúp và sử dụng:__ since they are generally are internal methods that are not called directly. At the end you see useful looking functions like append or sort which you can get help for and use:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x=input('Enter x: ')
Enter x: 2.
>>> type(x)

6

Bạn có thể nhân số int và phao không?

Kết quả của phép nhân của một chiếc phao và INT là một chiếc phao. Bên cạnh đó, nó sẽ được thăng cấp để tăng gấp đôi khi chuyển sang printf. Bạn cần định dạng %A, %E, %F hoặc %G. Định dạng %D được sử dụng để in các loại int. . Besides that, it will get promoted to double when passing to printf . You need a %a , %e , %f or %g format. The %d format is used to print int types.

Bạn có thể nhân danh sách với một chiếc phao trong Python không?

Nhân một chuỗi danh sách với một số float.Tương tự như chuỗi và bộ dữ liệu, danh sách cũng được coi là một đối tượng trình tự trong Python.Do đó, cố gắng nhân danh sách với một chiếc phao cũng sẽ ném một lỗi loại.trying to multiply a list by a float will also throw a type error.

Bạn có thể nhân các chuỗi và số nguyên trong Python không?

Khi bạn nhân một chuỗi với một số nguyên, Python sẽ trả về một chuỗi mới.Chuỗi mới này là chuỗi ban đầu, số lần lặp lại x lần (trong đó x là giá trị của số nguyên).Trong ví dụ sau, chúng ta sẽ nhân chuỗi 'Xin chào' với một vài số nguyên.Hãy lưu ý kết quả.. This new string is the original string, repeated X number of times (where X is the value of the integer). In the following example, we're going to multiply the string 'hello' by a few integers. Take note of the results.

Bạn có thể nhân phao?

Trước hết, bạn có thể nhân phao.Vấn đề bạn gặp phải không phải là chính bản chính, mà là số ban đầu bạn đã sử dụng.Sự nhân có thể mất một số độ chính xác, nhưng ở đây, số ban đầu mà bạn đã nhân bắt đầu với sự chính xác bị mất.Đây thực sự là một hành vi mong đợi.you can multiply floats. The problem you have is not the multiplication itself, but the original number you've used. Multiplication can lose some precision, but here the original number you've multiplied started with lost precision. This is actually an expected behavior.