Tôi biết bạn đã chấp nhận một câu trả lời khác, nhưng tôi nghĩ rằng vấn đề rộng hơn cần giải quyết - phong cách lập trình phù hợp với ngôn ngữ hiện tại.
Có, 'khởi tạo' không cần thiết trong Python, nhưng những gì bạn đang làm không phải là khởi tạo. Nó chỉ là một sự bắt chước không đầy đủ và sai lầm của việc khởi tạo như được thực hành trong các ngôn ngữ khác. Điều quan trọng về khởi tạo trong các ngôn ngữ được đánh máy tĩnh là bạn chỉ định bản chất của các biến.
Trong Python, như trong các ngôn ngữ khác, bạn cần cung cấp các giá trị biến trước khi bạn sử dụng chúng. Nhưng cung cấp cho chúng các giá trị khi bắt đầu hàm không quan trọng và thậm chí sai nếu các giá trị bạn đưa ra không liên quan gì đến các giá trị mà chúng nhận được sau này. Đó không phải là 'khởi tạo', đó là 'tái sử dụng'.
Tôi sẽ thực hiện một số ghi chú và sửa chữa mã của bạn:
def main[]:
# doc to define the function
# proper Python indentation
# document significant variables, especially inputs and outputs
# grade_1, grade_2, grade_3, average - id these
# year - id this
# fName, lName, ID, converted_ID
infile = open["studentinfo.txt", "r"]
# you didn't 'intialize' this variable
data = infile.read[]
# nor this
fName, lName, ID, year = data.split[","]
# this will produce an error if the file does not have the right number of strings
# 'year' is now a string, even though you 'initialized' it as 0
year = int[year]
# now 'year' is an integer
# a language that requires initialization would have raised an error
# over this switch in type of this variable.
# Prompt the user for three test scores
grades = eval[input["Enter the three test scores separated by a comma: "]]
# 'eval' ouch!
# you could have handled the input just like you did the file input.
grade_1, grade_2, grade_3 = grades
# this would work only if the user gave you an 'iterable' with 3 values
# eval[] doesn't ensure that it is an iterable
# and it does not ensure that the values are numbers.
# What would happen with this user input: "'one','two','three',4"?
# Create a username
uName = [lName[:4] + fName[:2] + str[year]].lower[]
converted_id = ID[:3] + "-" + ID[3:5] + "-" + ID[5:]
# earlier you 'initialized' converted_ID
# initialization in a static typed language would have caught this typo
# pseudo-initialization in Python does not catch typos
....
Giới thiệu
Các biến là một khái niệm lập trình quan trọng để làm chủ. Chúng về cơ bản là các biểu tượng đứng trong một giá trị mà bạn sử dụng trong một chương trình. are an important programming concept to master. They are essentially symbols that stand in for a value you’re using in a program.
Hướng dẫn này sẽ bao gồm một số điều cơ bản khác nhau và cách sử dụng chúng tốt nhất trong các chương trình Python 3 bạn tạo.
Điều kiện tiên quyết
Bạn nên cài đặt Python 3 và môi trường lập trình được thiết lập trên máy tính hoặc máy chủ của bạn. Nếu bạn không có môi trường lập trình được thiết lập, bạn có thể tham khảo hướng dẫn cài đặt và thiết lập cho môi trường lập trình cục bộ hoặc cho môi trường lập trình trên máy chủ của bạn phù hợp với hệ điều hành của bạn [Ubuntu, Centos, Debian, v.v.]
Hiểu các biến
Trong các thuật ngữ kỹ thuật, một biến đang gán một vị trí lưu trữ cho một giá trị được gắn với một tên hoặc định danh tượng trưng. Tên biến được sử dụng để tham khảo giá trị được lưu trữ trong chương trình máy tính.
Bạn có thể nghĩ về một biến như một nhãn có tên trên đó, bạn buộc vào một giá trị:
Hãy nói rằng chúng tôi có một số nguyên,
Output
103204934813
0 và chúng tôi muốn lưu trữ nó trong một biến thay vì liên tục getype số lượng dài nhiều lần. Thay vào đó, hãy để sử dụng một thứ gì đó mà dễ nhớ như biến Output
103204934813
1:Thông tin: Để làm theo cùng với mã ví dụ trong hướng dẫn này, hãy mở một vỏ tương tác Python trên hệ thống cục bộ của bạn bằng cách chạy lệnh Output Output
2. Sau đó, bạn có thể sao chép, dán hoặc chỉnh sửa các ví dụ bằng cách thêm chúng sau lời nhắc
3. To follow along with the example code in this tutorial, open a Python interactive shell on your local system by running the
Output
103204934813
2 command. Then you can copy, paste, or edit the examples by adding them after the Output
103204934813
3 prompt.my_int = 103204934813
Nếu chúng ta nghĩ về nó giống như một nhãn được gắn với giá trị, nó sẽ trông giống như thế này:
Nhãn có tên biến
Output
103204934813
1 được viết trên đó và được gắn với giá trị số nguyên Output
103204934813
0.Cụm từ
Output
103204934813
6 là một tuyên bố gán, bao gồm một vài phần:assignment
statement, which consists of a few parts:- Tên biến [
1]Output
103204934813 - toán tử gán, còn được gọi là dấu bằng [
8]assignment operator, also known as the equal sign [Output
8]Output
103204934813 - giá trị được gắn với tên biến [
0]Output
103204934813
Cùng với nhau, ba phần đó tạo nên câu lệnh đặt biến
Output
103204934813
1 bằng với giá trị của số nguyên Output
103204934813
0.Ngay khi chúng tôi đặt một biến bằng với một giá trị, chúng tôi sẽ khởi tạo hoặc tạo biến đó. Khi chúng tôi đã làm điều đó, chúng tôi được thiết lập để sử dụng biến thay vì giá trị. Trong Python, các biến không cần khai báo rõ ràng trước khi sử dụng như một số ngôn ngữ lập trình; Bạn có thể bắt đầu sử dụng biến ngay lập tức.initialize or create that variable. Once we have done that, we are set to use the variable instead of the value. In Python, variables do not need explicit declaration prior to use like some programming languages; you can start using the variable right away.
Ngay khi chúng tôi đặt
Output
103204934813
1 bằng giá trị của Output
103204934813
0, chúng tôi có thể sử dụng Output
103204934813
1 ở vị trí của số nguyên, vì vậy hãy để Lôi in nó ra:print[my_int]
Output
103204934813
Sử dụng các biến, chúng ta có thể nhanh chóng và dễ dàng làm toán. Với
Output
103204934813
6, hãy để trừ đi giá trị số nguyên 813:print[my_int - 813]
Output
103204934000
Trong ví dụ này, Python thực hiện toán học cho chúng tôi, trừ 813 từ biến
Output
103204934813
1 để trả về tổng print[my_int - 813]
7.Nói về toán học, các biến có thể được đặt bằng kết quả của phương trình toán học. Hãy để thêm hai số lại với nhau và lưu trữ giá trị của tổng vào biến
print[my_int - 813]
8:x = 76 + 145
Ví dụ trên có thể trông giống như một cái gì đó mà bạn đã quen thuộc: Đại số. Trong đại số, các chữ cái và các ký hiệu khác được sử dụng để biểu diễn số và số lượng trong các công thức và phương trình, giống như cách các biến là tên biểu tượng đại diện cho giá trị của kiểu dữ liệu. Đối với cú pháp Python chính xác, bạn sẽ cần đảm bảo rằng biến của bạn nằm ở phía bên trái của bất kỳ phương trình nào.
Hãy để đi trước và in
print[my_int - 813]
8:print[x]
Output
221
Python trả về giá trị
Output
103204934000
0 vì biến print[my_int - 813]
8 được đặt bằng tổng của Output
103204934000
2 và Output
103204934000
3.Các biến có thể đại diện cho bất kỳ loại dữ liệu nào, không chỉ các số nguyên:
my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
Nếu bạn in bất kỳ biến nào ở trên, Python sẽ trả về những gì biến đó tương đương. Ví dụ: hãy để Lừa làm việc với câu lệnh gán cho loại dữ liệu danh sách ở trên:
my_int = 103204934813
0my_int = 103204934813
1Chúng tôi đã chuyển giá trị danh sách của
Output
103204934000
4 cho biến Output
103204934000
5, sau đó sử dụng hàm Output
103204934000
6 để in ra giá trị đó bằng cách gọi Output
103204934000
5.Các biến hoạt động bằng cách khắc ra một khu vực nhỏ của bộ nhớ trong máy tính của bạn, chấp nhận các giá trị được chỉ định sau đó được liên kết với không gian đó.
Đặt tên biến: Quy tắc và phong cách
Việc đặt tên của các biến khá linh hoạt, nhưng có một số quy tắc bạn cần ghi nhớ:
- Tên biến chỉ phải là một từ [như trong không có khoảng trắng]
- Tên biến phải được tạo thành từ các chữ cái, số và dấu gạch dưới [
8]Output
103204934000 - Tên biến không thể bắt đầu bằng một số
Theo các quy tắc ở trên, hãy để xem xét các tên biến hợp lệ và không hợp lệ:
my_int | My-int | Không được phép gạch nối |
INT4 | 4 in | Không thể bắt đầu với một số |
My_int | $ My_int | Không thể sử dụng các ký hiệu khác với 8 |
người khác_int | INT khác | Không thể nhiều hơn một từ |
Một cái gì đó khác cần lưu ý khi đặt tên các biến, là chúng nhạy cảm với trường hợp, có nghĩa là
Output
103204934813
1, x = 76 + 145
1, x = 76 + 145
2 và x = 76 + 145
3 đều là các biến hoàn toàn khác nhau. Bạn nên tránh sử dụng các tên biến tương tự trong một chương trình để đảm bảo rằng cả bạn và cộng tác viên hiện tại và tương lai của bạn có thể giữ cho các biến của bạn thẳng.Cuối cùng, một số ghi chú về phong cách. Nói một cách thông thường, khi đặt tên các biến, người ta thường bắt đầu chúng bằng một chữ cái chữ thường và sử dụng dấu gạch dưới khi tách các từ. Bắt đầu với một chữ cái trong trường hợp trên không hợp lệ và một số người có thể thích Camelcase hoặc các chữ cái trong trường hợp hỗn hợp và hỗn hợp khi viết các biến của họ, nhưng đây là những lựa chọn ít thông thường hơn.
my_int | My-int | Không được phép gạch nối |
INT4 | 4 in | Không thể bắt đầu với một số |
My_int | $ My_int | Không được phép gạch nối |
INT4
4 in
Không thể bắt đầu với một số
My_intvariable implies, Python variables can be readily changed. This means that you can connect a different value with a previously assigned variable very easily through reassignment.
$ My_int
Biết rằng bạn có thể dễ dàng và dễ dàng phân công lại một biến cũng có thể hữu ích trong các tình huống mà bạn có thể đang làm việc trên một chương trình lớn được bắt đầu bởi người khác và bạn chưa rõ ràng về những gì đã được xác định.
Trước tiên, chúng ta hãy gán
print[my_int - 813]
8 dưới dạng số nguyên, và sau đó chỉ định lại nó thành một chuỗi:my_int = 103204934813
2my_int = 103204934813
3Ví dụ trên cho thấy rằng trước tiên chúng ta có thể gán biến
print[my_int - 813]
8 và gán nó với giá trị của số nguyên, sau đó gán lại biến print[my_int - 813]
8 gán nó lần này với giá trị của chuỗi.Nếu chúng ta viết lại chương trình theo cách này:
my_int = 103204934813
4Chúng tôi sẽ chỉ nhận được giá trị được gán thứ hai làm đầu ra vì đó là nhiệm vụ gần đây nhất:
my_int = 103204934813
5Việc chỉ định lại các biến có thể hữu ích trong một số trường hợp, nhưng bạn sẽ muốn nhận thức được khả năng đọc mã và công việc của mình để làm cho chương trình của bạn rõ ràng nhất có thể.
Nhiều bài tập
Với Python, bạn có thể gán một giá trị duy nhất cho một số biến cùng một lúc. Điều này cho phép bạn khởi tạo một số biến cùng một lúc, bạn có thể tự chỉ định lại sau trong chương trình hoặc thông qua đầu vào của người dùng.
Thông qua nhiều bài tập, bạn có thể đặt các biến
print[my_int - 813]
8, x = 76 + 145
8 và x = 76 + 145
9 thành giá trị của số nguyên print[x]
0:my_int = 103204934813
6my_int = 103204934813
7Trong ví dụ này, cả ba biến số [
print[my_int - 813]
8, x = 76 + 145
8 và x = 76 + 145
9] đều được gán cho cùng một vị trí bộ nhớ. Chúng từng bằng với giá trị 0.Python cũng cho phép bạn gán một số giá trị cho một số biến trong cùng một dòng. Mỗi giá trị này có thể thuộc loại dữ liệu khác nhau:
my_int = 103204934813
8my_int = 103204934813
9Trong ví dụ trên, biến
print[x]
4 được gán cho chuỗi print[x]
5, biến print[x]
6 được gán cho float print[x]
7 và biến print[x]
8 được gán cho số nguyên print[x]
9.Cách tiếp cận này để gán nhiều biến cho nhiều giá trị trong một dòng có thể giữ cho các dòng mã của bạn xuống, nhưng đảm bảo bạn không thỏa hiệp khả năng đọc cho ít dòng mã hơn.
Các biến toàn cầu và địa phương
Khi sử dụng các biến trong một chương trình, điều quan trọng là phải ghi nhớ phạm vi biến. Một phạm vi khác nhau của LỚN đề cập đến các địa điểm cụ thể có thể truy cập trong mã của một chương trình nhất định. Điều này có nghĩa là không phải tất cả các biến có thể truy cập được từ tất cả các phần của một chương trình nhất định - một số biến sẽ là toàn cầu và một số sẽ là cục bộ.variable scope in mind. A variable’s scope refers to the particular places it is accessible within the code of a given program. This is to say that not all variables are accessible from all parts of a given program — some variables will be global and some will be local.
Các biến toàn cầu tồn tại bên ngoài các chức năng. Các biến cục bộ tồn tại trong các chức năng. exist outside of functions. Local variables exist within functions.
Hãy cùng xem các biến toàn cầu và địa phương trong hành động:
print[my_int]
0print[my_int]
1Chương trình trên chỉ định biến toàn cầu
Output
221
0 bên ngoài bất kỳ chức năng nào, sau đó xác định hàm Output
221
1. Bên trong hàm, một biến cục bộ gọi là Output
221
2 được gán và sau đó được in ra. Chương trình kết thúc bằng cách gọi Output
221
1 và sau đó in Output
221
0.Bởi vì
Output
221
0 là một biến toàn cầu, chúng ta có thể tham khảo nó trong Output
221
1. Hãy để sửa đổi chương trình nhỏ ở trên để làm điều đó:print[my_int]
2print[my_int]
3Bây giờ chúng tôi có biến toàn cầu
Output
221
0 được in ra hai lần, bởi vì nó được in cả bởi hàm và bên ngoài chức năng.Điều gì sẽ xảy ra nếu chúng ta cố gắng gọi biến cục bộ bên ngoài hàm?
print[my_int]
4print[my_int]
5Chúng tôi không thể sử dụng một biến cục bộ bên ngoài hàm mà nó được gán. Nếu chúng tôi cố gắng làm như vậy, chúng tôi sẽ nhận được một
Output
221
8.Hãy để xem xét một ví dụ khác trong đó chúng tôi sử dụng cùng một tên biến cho biến toàn cầu và biến cục bộ:
print[my_int]
6print[my_int]
7Bởi vì biến cục bộ của
Output
221
9 được gán cục bộ trong một hàm, khi chúng ta gọi hàm đó, chúng ta thấy Output
221
9 bằng giá trị cục bộ của my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
1. Khi chúng tôi in ra giá trị toàn cầu là Output
221
9 sau khi gọi my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
3, chúng tôi thấy rằng biến toàn cầu Output
221
9 vẫn bằng giá trị my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
5.Có thể gán các biến toàn cầu trong một hàm bằng cách sử dụng câu lệnh Python từ ____996:
print[my_int]
8my_int = 103204934813
5Mặc dù biến
my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
7 được gán cục bộ trong hàm my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
8, nhưng có thể truy cập bên ngoài hàm do câu lệnh my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
6 được sử dụng trước khi gán biến trong hàm. Do tuyên bố my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ['one', 'two', 'three']
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
6 đó, khi chúng tôi gọi my_int = 103204934813
01 bên ngoài chức năng, chúng tôi không nhận được lỗi. Mặc dù bạn có thể gán một biến toàn cầu trong một hàm, nhưng bạn có thể sẽ không cần phải làm điều này thường xuyên và sẽ sai về phía mã có thể đọc được.Một cái gì đó khác cần lưu ý là nếu bạn tham khảo một biến trong một hàm, mà không gán cho nó một giá trị, biến đó là toàn cầu ngầm. Để có một biến cục bộ, bạn phải gán một giá trị cho nó trong phần thân của hàm.
Khi làm việc với các biến, điều quan trọng là phải quyết định xem việc sử dụng biến toàn cầu hay cục bộ là phù hợp hơn. Thông thường, tốt nhất là giữ các biến cục bộ, nhưng khi bạn đang sử dụng cùng một biến trong một số chức năng, bạn có thể muốn khởi tạo một biến toàn cầu. Nếu bạn chỉ làm việc với biến trong một hàm hoặc một lớp, bạn có thể muốn sử dụng một biến cục bộ thay thế.
Sự kết luận
Hướng dẫn này đã trải qua một số trường hợp sử dụng phổ biến của các biến trong Python 3. Biến là một khối xây dựng quan trọng của lập trình, đóng vai trò là các biểu tượng phù hợp với giá trị của một loại dữ liệu bạn đang sử dụng trong một chương trình.