Tôi có mã Python, tôi cần lấy giá trị của nó bên ngoài vòng lặp và nếu các câu lệnh và sử dụng biến hơn nữa:
Mã của tôi:
with open['text','r'] as f:
for line in f.readlines[]:
if 'hi' in line
a='hello'
print a #variable requires outside the loop
Nhưng tôi nhận được Nameerror: 'a' is not defined
Hỏi ngày 20 tháng 8 năm 2014 lúc 13:45Aug 20, 2014 at 13:45
5
Thông báo lỗi có nghĩa là bạn không bao giờ được gán cho a
[nghĩa là điều kiện if
không bao giờ được đánh giá thành True
].
Để xử lý điều này một cách duyên dáng hơn, bạn nên gán giá trị mặc định cho a
trước vòng lặp:
a = None
with open['test', 'r'] as f:
...
Sau đó, bạn có thể kiểm tra xem đó là
a = None
with open['test', 'r'] as f:
...
1 sau vòng lặp:if a is not None:
...
Đã trả lời ngày 20 tháng 8 năm 2014 lúc 13:47Aug 20, 2014 at 13:47
NPENPENPE
474K105 Huy hiệu vàng930 Huy hiệu bạc1002 Huy hiệu Đồng105 gold badges930 silver badges1002 bronze badges
1
Bạn cũng có thể thử:
try:
print a
except NameError:
print 'Failed to set "a"'
EDIT: Nó đồng thời giải quyết vấn đề không in a, nếu bạn không tìm thấy những gì bạn đang tìm kiếma , if you did not find what you were looking for
Đã trả lời ngày 20 tháng 8 năm 2014 lúc 13:49Aug 20, 2014 at 13:49
Volcanovolcanovolcano
3.53820 Huy hiệu bạc28 Huy hiệu đồng20 silver badges28 bronze badges
Các câu trả lời khác ở đây là chính xác, bạn cần đảm bảo rằng a
đã được gán một giá trị trước khi bạn cố gắng in nó. Tuy nhiên, không có câu trả lời nào khác đề cập đến cấu trúc
a = None
with open['test', 'r'] as f:
...
3 của Python, mà tôi nghĩ là chính xác những gì bạn cần ở đây:with open['text','r'] as f:
for line in f.readlines[]:
if 'hi' in line:
a='hello'
break
else:
a='value not found'
print a #variable requires outside the loop
Điều khoản
a = None
with open['test', 'r'] as f:
...
4 chỉ được chạy nếu vòng lặp a = None
with open['test', 'r'] as f:
...
5 hoàn thành lần lặp cuối cùng mà không cần ________ 16-ing.Cấu trúc này có vẻ duy nhất cho Python theo kinh nghiệm của tôi. Nó có thể dễ dàng thực hiện bằng các ngôn ngữ hỗ trợ
a = None
with open['test', 'r'] as f:
...
7, nhưng Python là ngôn ngữ duy nhất tôi biết với một cấu trúc tích hợp dành riêng cho việc này. Nếu bạn biết một ngôn ngữ khác như vậy, xin vui lòng để lại nhận xét và khai sáng cho tôi!Đã trả lời ngày 20 tháng 8 năm 2014 lúc 14:05Aug 20, 2014 at 14:05
DaowendaowenDaoWen
32.2k6 huy hiệu vàng72 Huy hiệu bạc101 Huy hiệu đồng6 gold badges72 silver badges101 bronze badges
Chỉ cần xác định
a = None
with open['test', 'r'] as f:
...
8 hoặc a = None
with open['test', 'r'] as f:
...
9 để trở thành biến toàn cầu và bạn có thể truy cập A ở bất cứ đâu trong mã của mình
Tiếng kêu
4.3069 Huy hiệu vàng32 Huy hiệu bạc42 Huy hiệu Đồng9 gold badges32 silver badges42 bronze badges
Đã trả lời ngày 3 tháng 7 năm 2020 lúc 8:55Jul 3, 2020 at 8:55
MilanmilanMilan
486 Huy hiệu Đồng6 bronze badges
Bạn có thể sử dụng một biến bên ngoài một chức năng không?
Bạn chỉ có thể sử dụng một biến bên trong phạm vi bạn đã xác định nó. Khi bạn xác định một biến bên trong một hàm, phạm vi của nó được xác định trong hàm và do đó bạn không thể sử dụng nó bên ngoài hàm.
0 điểm
hơn 10 năm
Trong bài tập này, các hướng dẫn nói rằng biến có thể được khai báo trước khi vòng lặp bắt đầu, nếu không thì đó là một biến cục bộ trong vòng lặp và không thể được truy cập bên ngoài vòng lặp.
Tôi hiểu khái niệm về các biến số địa phương và toàn cầu, nhưng tôi không nghĩ rằng kịch bản này thể hiện quan điểm?
Bạn chỉ có thể sử dụng một biến bên trong phạm vi bạn đã xác định nó. Khi bạn xác định một biến bên trong một hàm, phạm vi của nó được xác định trong hàm và do đó bạn không thể sử dụng nó bên ngoài hàm.
0 điểm
hơn 10 năm
Trong bài tập này, các hướng dẫn nói rằng biến có thể được khai báo trước khi vòng lặp bắt đầu, nếu không thì đó là một biến cục bộ trong vòng lặp và không thể được truy cập bên ngoài vòng lặp.
Tôi hiểu khái niệm về các biến số địa phương và toàn cầu, nhưng tôi không nghĩ rằng kịch bản này thể hiện quan điểm?
Tôi hiểu khái niệm về các biến số địa phương và toàn cầu, nhưng tôi không nghĩ rằng kịch bản này thể hiện quan điểm?
Bạn chỉ có thể sử dụng một biến bên trong phạm vi bạn đã xác định nó. Khi bạn xác định một biến bên trong một hàm, phạm vi của nó được xác định trong hàm và do đó bạn không thể sử dụng nó bên ngoài hàm.
0 điểm
The inside-declared loop variables do not "disappear" --
range5 = range[5]
print "range5 start " + str[range5]
for x in range5:
y = x
print y
print "range5 end " + str[range5]
The result is :
The variables you declare inside of loops DOES NOT disappear after you get out of the loop.
range5 start [0, 1, 2, 3, 4]
4
range5 end [0, 1, 2, 3, 4]
Tôi hiểu khái niệm về các biến số địa phương và toàn cầu, nhưng tôi không nghĩ rằng kịch bản này thể hiện quan điểm?
Trả lời 4FEAC5D497F63A0003018144
điểm
Khóa học
Trả lời 5027C7B878CA480002010D3C
Nếu bạn nhớ làm bạn in câu lệnh bên ngoài vòng lặp, bạn sẽ nhận được kết quả chính xác.
Trực lưu ngôn ngữ
Khóa học
Tìm hiểu JavaScript
Tìm hiểu cách sử dụng JavaScript - một ngôn ngữ lập trình mạnh mẽ và linh hoạt để thêm tính tương tác trang web.
Trực lưu ngôn ngữ
Khóa học
Tìm hiểu HTML
Bắt đầu lúc bắt đầu bằng cách học cơ bản HTML - một nền tảng quan trọng để xây dựng và chỉnh sửa các trang web.
Trực lưu ngôn ngữ
Tìm hiểu HTML