Cách nhập phương trình trong python

Chương này được trích từ cuốn sách A Primer on Scientific Programming with Python của H. P. Langtangen, tái bản lần thứ 5, Springer, 2016

chủ đề chương

Chương trình phải chính xác

Một chương trình là một tập hợp các câu lệnh được lưu trữ trong một tệp văn bản. Các câu lệnh cũng có thể được thực thi một cách tương tác trong trình bao Python. Bất kỳ lỗi nào trong bất kỳ câu lệnh nào đều có thể dẫn đến việc chấm dứt thực hiện hoặc kết quả sai. Máy tính làm chính xác những gì lập trình viên yêu cầu máy tính làm

Biến

tuyên bố

định nghĩa một biến có tên

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
5 đề cập đến một đối tượng
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
6. Ở đây,
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
6 cũng có thể đại diện cho một biểu thức, chẳng hạn như một công thức, có giá trị là một đối tượng Python. Ví dụ:
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
8 liên quan đến việc bổ sung đối tượng
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
9 và đối tượng
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
0, dẫn đến đối tượng
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
0. Tên biến có thể chứa chữ hoa và chữ thường tiếng Anh, dấu gạch dưới và các chữ số từ 0 đến 9, nhưng tên không được bắt đầu bằng một chữ số. Tên biến cũng không thể là một từ dành riêng trong Python

Nếu tồn tại một mô tả toán học chính xác của vấn đề cần giải quyết trong một chương trình, người ta nên chọn các tên biến phù hợp với mô tả toán học. Các đại lượng không có ký hiệu toán học xác định, nên được gọi bằng các tên biến mô tả, i. e. , tên giải thích vai trò của biến trong chương trình. Các tên biến được chọn tốt là điều cần thiết để làm cho chương trình dễ đọc, dễ gỡ lỗi và dễ mở rộng. Tên biến được chọn tốt cũng làm giảm nhu cầu nhận xét

dòng bình luận

Mọi thứ sau

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
2 trên một dòng đều bị Python bỏ qua và được sử dụng để chèn văn bản chạy tự do, được gọi là nhận xét. Mục đích của nhận xét là để giải thích, bằng ngôn ngữ của con người, ý tưởng của [một số] câu lệnh sắp tới để chương trình trở nên dễ hiểu hơn đối với con người. Một số biến có tên không hoàn toàn tự giải thích cũng cần nhận xét

các loại đối tượng

Có nhiều loại đối tượng khác nhau trong Python. Trong tài liệu này, chúng tôi đã làm việc với các loại sau

Số nguyên [số nguyên, loại đối tượng

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
9]

Số float [số thập phân, loại đối tượng

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
0]

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
0

Chuỗi [các đoạn văn bản, loại đối tượng

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
5]

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""

Số phức [loại đối tượng

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
6]

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]

nhà điều hành

Các toán tử trong các biểu thức số học tuân theo các quy tắc từ toán học. lũy thừa được đánh giá trước phép nhân và phép chia, trong khi hai phép chia sau được đánh giá trước phép cộng và phép trừ. Các quy tắc này được ghi đè bởi dấu ngoặc đơn. Chúng tôi khuyên bạn nên sử dụng dấu ngoặc đơn để nhóm và làm rõ các biểu thức toán học, kể cả khi không thực sự cần thiết

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
5

Phải đặc biệt chú ý đến việc mã hóa phân số, vì toán tử chia

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
7 thường cần thêm dấu ngoặc đơn không cần thiết trong ký hiệu toán học cho phân số [so sánh \[ \frac{a}{b+c} \] với
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
8 và
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
9]

Các hàm toán học phổ biến

Mô-đun

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
50 chứa các hàm toán học phổ biến cho số thực. Các mô-đun phải được nhập trước khi chúng có thể được sử dụng. Ba loại nhập mô-đun thay thế diễn ra như sau

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
0

In

Để in kết quả tính toán trong chương trình Python ra cửa sổ terminal, chúng ta áp dụng lệnh

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
51, i. e. , từ
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
51 theo sau là một chuỗi đặt trong dấu ngoặc kép hoặc chỉ một biến

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
3

Một số đối tượng có thể được in trong một câu lệnh nếu các đối tượng được phân tách bằng dấu phẩy. Sau đó, một khoảng trắng sẽ xuất hiện giữa đầu ra của từng đối tượng

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
4

Cú pháp printf cho phép kiểm soát hoàn toàn định dạng của số thực và số nguyên

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
5

Ở đây,

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
53,
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
54 và
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
55 thuộc loại
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
0 và được định dạng nhỏ gọn nhất có thể [
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
57 cho
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
53], theo ký hiệu khoa học với 4 số thập phân trong trường có chiều rộng 12 [
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
59 cho
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
54] và ký hiệu thập phân với hai số thập phân trong . Biến
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
03 là một số nguyên [
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
9] được viết trong một trường có độ rộng 5 ký tự [
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
05]

Cẩn thận với phép chia số nguyên

Một lỗi phổ biến trong tính toán toán học là chia hai số nguyên, vì điều này dẫn đến phép chia số nguyên [trong Python 2]

  • Bất kỳ số nào được viết không có phần thập phân được coi là số nguyên. Để tránh phép chia số nguyên, hãy đảm bảo rằng mọi phép chia liên quan đến ít nhất một số thực, e. g. , ________ 206 được viết là ________ 207, ________ 208, ________ 209, hoặc
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    30
  • Trong các biểu thức có biến,
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    31, đảm bảo rằng
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    53 hoặc
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    54 là một đối tượng
    a = 2.5 + 3j
    real = 6; imag = 3.1
    b = complex[real, imag]
    
    0 và nếu không [hoặc không chắc chắn], hãy thực hiện chuyển đổi rõ ràng như trong
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    35 để đảm bảo phép chia float
  • Nếu muốn chia số nguyên, hãy sử dụng dấu gạch chéo kép.
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    36
  • Python 3 cũng coi
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    31 là phép chia float khi
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    53 và
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    54 là số nguyên

Số phức

Giá trị của số phức được viết dưới dạng

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
40, trong đó
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
41 là giá trị của phần thực và
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
42 là giá trị của phần ảo. Một ví dụ là
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
43. Nếu phần thực và phần ảo có sẵn dưới dạng các biến
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
44 và
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
45, một số phức có thể được tạo bởi
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
46

Mô-đun

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
47 phải được sử dụng thay vì
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
50 nếu đối số là một biến phức tạp. Gói
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
49 cung cấp các hàm toán học tương tự, nhưng với cách xử lý thống nhất các biến thực và biến phức

Thuật ngữ

Một số thuật ngữ Python và khoa học máy tính được đề cập ngắn gọn trong tài liệu này là

  • sự vật. bất cứ thứ gì mà một biến [tên] có thể tham chiếu đến, chẳng hạn như một số, chuỗi, hàm hoặc mô-đun [nhưng các đối tượng có thể tồn tại mà không bị ràng buộc với tên.
    a = 'This is a piece of text\nover two lines.'
    b = "Strings are enclosed in single or double quotes."
    c = """Triple-quoted strings can
    span
    several lines.
    """
    
    50 đầu tiên tạo một đối tượng chuỗi văn bản trong dấu ngoặc kép và sau đó nội dung của đối tượng chuỗi này, không có tên, được in ra]
  • Biến đổi. tên của một đối tượng
  • bản tường trình. một hướng dẫn cho máy tính, thường được viết trên một dòng trong chương trình Python [nhiều câu lệnh trên một dòng phải được phân tách bằng dấu chấm phẩy]
  • biểu hiện. sự kết hợp của các số, văn bản, biến và toán tử dẫn đến một đối tượng mới khi được đánh giá
  • phân công. một câu lệnh ràng buộc một biểu thức [đối tượng] được đánh giá với một biến [tên]
  • thuật toán. công thức chi tiết về cách giải quyết vấn đề bằng cách lập trình
  • mã số. văn bản chương trình [hoặc từ đồng nghĩa với chương trình]
  • thực hiện. giống như mã
  • thực thi được. tập tin chúng tôi chạy để bắt đầu chương trình
  • xác minh. cung cấp bằng chứng cho thấy chương trình hoạt động chính xác
  • gỡ lỗi. định vị và sửa lỗi trong chương trình

Thí dụ. Quỹ đạo của một quả bóng

Vấn đề

Quỹ đạo của một quả bóng được ném hoặc đá với vận tốc ban đầu \[ v_0 \] tạo một góc \[ \theta \] với phương ngang là gì? . Xác định quỹ đạo của một quả bóng. Quả bóng sẽ đi theo quỹ đạo \[ y=f[x] \] trong không khí tại đó $$ \begin{equation} f[x] = x\tan\theta - {1\over 2v_0^2}{gx^2 . Mục tiêu lập trình của chúng tôi là tạo ra một chương trình để đánh giá [6]. Chương trình sẽ viết ra giá trị của tất cả các biến liên quan và đơn vị của chúng là gì

Ta nhận xét công thức [6] bỏ qua sức cản của không khí. bài tập 11. Tính lực cản không khí trên quả bóng khám phá tầm quan trọng của lực cản không khí. Đối với một cú đá mềm [\[ v_0=30 \] km/h] của một quả bóng đá, lực hấp dẫn lớn hơn nhiều so với lực cản của không khí, nhưng đối với một cú đá mạnh, lực cản của không khí có thể quan trọng như lực hấp dẫn

Dung dịch

Chúng tôi sử dụng hệ thống SI và giả sử rằng \[ v_0 \] được tính bằng km/h; . 81\hbox {m/s}^2 \]; . Chương trình tự nhiên có bốn phần. khởi tạo dữ liệu đầu vào, nhập hàm và \[ \pi \] từ

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
50, chuyển đổi \[ v_0 \] và \[ \theta \] tương ứng thành m/s và radian, đồng thời đánh giá biểu thức bên phải . Chúng tôi chọn viết ra tất cả các giá trị số với một số thập phân. Chương trình hoàn chỉnh được tìm thấy trong quỹ đạo tệp. py

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
5

Dấu gạch chéo ngược trong chuỗi nhiều dòng được trích dẫn ba lần làm cho chuỗi tiếp tục ở dòng tiếp theo mà không cần xuống dòng. Điều này có nghĩa là việc loại bỏ dấu gạch chéo ngược dẫn đến một dòng trống phía trên dòng

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
52 và một dòng trống giữa dòng
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
53 và dòng
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
54 trong kết quả xuất trên màn hình. Một điểm khác cần đề cập là biểu thức
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
55, có vẻ như là một ứng cử viên cho phép chia số nguyên ngoài ý muốn. Tuy nhiên, việc chuyển đổi
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
52 sang m/s liên quan đến việc chia cho 3. 6, kết quả là
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
52 là
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
0, và do đó
a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
59 là
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
0. Phần còn lại của chương trình nên tự giải thích ở giai đoạn này trong tài liệu

Chúng ta có thể thực thi chương trình trong IPython hoặc một cửa sổ đầu cuối thông thường và xem đầu ra

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
5

Về các quy ước sắp chữ trong cuốn sách này

Phiên bản tài liệu này áp dụng các yếu tố thiết kế khác nhau cho các loại "văn bản máy tính" khác nhau. Các chương trình hoàn chỉnh và các phần của chương trình [đoạn trích] được sắp chữ với nền màu xanh nhạt. Một đoạn trông như thế này

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
0

Một chương trình hoàn chỉnh có thêm khung tối hơn một chút

Với tư cách là người đọc tài liệu này, bạn có thể thắc mắc liệu mã được hiển thị có phải là một chương trình hoàn chỉnh mà bạn có thể dùng thử hay nó chỉ là một phần của chương trình [đoạn trích] để bạn cần thêm các câu lệnh xung quanh [e. g. , câu lệnh nhập] để tự mình thử mã. Sự xuất hiện của các đường ngang hay không sau đó sẽ nhanh chóng cho bạn biết loại mã bạn nhìn thấy

Một phiên Python tương tác được sắp chữ là

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
1

Chạy một chương trình, chẳng hạn như

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
51, trong cửa sổ đầu cuối, theo sau là một số đầu ra có thể được sắp chữ là

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
2

Nhắc lại ở phần IPython ta chỉ viết tên chương trình. Việc thực thi thực sự yêu cầu thêm tiền tố vào tên chương trình bằng

a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
52 trong cửa sổ đầu cuối hoặc bằng
a = 2.5 + 3j
real = 6; imag = 3.1
b = complex[real, imag]
53 nếu bạn chạy chương trình từ phiên IPython tương tác. Chúng tôi tham khảo tài liệu Các cách chạy chương trình Python khác nhau [2] để biết thêm thông tin đầy đủ về cách chạy chương trình Python theo các cách khác nhau

Đôi khi, chỉ đầu ra từ một chương trình được hiển thị và đầu ra này xuất hiện dưới dạng văn bản máy tính thuần túy

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
3

Các tệp chứa dữ liệu được hiển thị theo cách tương tự trong tài liệu này

a = 'This is a piece of text\nover two lines.'
b = "Strings are enclosed in single or double quotes."
c = """Triple-quoted strings can
span
several lines.
"""
4

Hướng dẫn phong cách cho mã Python

Cuốn sách này trình bày mã Python [hầu hết] phù hợp với Hướng dẫn phong cách chính thức cho mã Python, được biết đến trong cộng đồng Python là PEP8. Một số ngoại lệ đối với quy tắc được thực hiện để làm cho đoạn mã ngắn hơn. nhiều lần nhập trên một dòng và ít dòng trống hơn

Chủ Đề