Hướng dẫn can i access variable outside of loop in python? - tôi có thể truy cập biến bên ngoài vòng lặp trong python không?

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

Bạn có thể truy cập một biến bên ngoài một vòng lặp không?

Nếu biến được khai báo bên ngoài vòng lặp, thì nó có phạm vi toàn cầu vì nó có thể được sử dụng thông qua hàm và bên trong vòng lặp.Nếu biến được khai báo bên trong vòng lặp, thì phạm vi chỉ hợp lệ bên trong vòng lặp và nếu được sử dụng bên ngoài vòng lặp sẽ gây ra lỗi.. If the variable is declared inside the loop, then the scope is only valid inside the loop and if used outside the loop will give an error.

Một biến truy cập chức năng Python có thể có thể không?

Trong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cầu được gọi là biến toàn cầu.Điều này có nghĩa là một biến toàn cầu có thể được truy cập bên trong hoặc bên ngoài hàm.a global variable can be accessed inside or outside of the function.

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.you can't use it outside the function.

Bài Viết Liên Quan

Chủ Đề