Python không được định nghĩa

Trong hướng dẫn Python này, chúng ta sẽ thảo luận về cách xử lý lỗi tên. tên không được xác định trong Python. Chúng tôi sẽ kiểm tra cách khắc phục lỗi tên không được xác định python 3

TênLỗi. tên không được xác định

Trong python, lỗi tên không được xác định xuất hiện khi chúng ta cố gắng sử dụng tên biến hoặc hàm không hợp lệ

Ví dụ

value = ['Mango', 'Apple', 'Orange']
print[values]

Sau khi viết đoạn mã trên, Ones bạn sẽ in “giá trị ” thì lỗi sẽ xuất hiện dưới dạng “ TênLỗi. tên 'giá trị' không được xác định ". Ở đây, các giá trị tên biến bị sai chính tả, vì vậy chúng tôi gặp lỗi này

Bạn có thể tham khảo tên ảnh chụp màn hình bên dưới tên lỗi không được xác định python

NameError trong python

Để giải quyết lỗi tên này. tên chưa được xác định python 3 chúng ta cần đảm bảo rằng tên biến được viết đúng chính tả

Ví dụ

value = ['Mango', 'Apple', 'Orange']
print[value]

Sau khi viết đoạn mã trên, Ones bạn sẽ in “giá trị ” sau đó đầu ra sẽ xuất hiện dưới dạng “[ ‘Mango’, ‘Apple’, ‘Orange’]”. Ở đây, tên biến chính xác là 'giá trị'. Vì vậy, theo cách này, chúng tôi giải quyết lỗi đánh máy trong python

Bạn có thể tham khảo ảnh chụp màn hình bên dưới để xóa lỗi tên trong python

lỗi tên Python. tên không được xác định

Bạn có thể thích các hướng dẫn sau

  • Python kiểm tra xem biến có phải là số nguyên không
  • Giá trịError. lỗi miền toán học
  • Python pip không được công nhận là lệnh nội bộ hoặc bên ngoài
  • Kiểm tra xem một số có phải là số nguyên tố không
  • Python chuyển đổi tuple thành danh sách

Đây là cách giải quyết lỗi tên Python. tên không được xác định hoặc NameError. tên 'giá trị' không được xác định trong python

Bijay Kumar

Python là một trong những ngôn ngữ phổ biến nhất ở Hoa Kỳ. Tôi đã làm việc với Python trong một thời gian dài và tôi có kinh nghiệm làm việc với nhiều thư viện khác nhau trên Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, v.v… Tôi có kinh nghiệm làm việc với nhiều khách hàng khác nhau . Kiểm tra hồ sơ của tôi

Vì vậy, tôi đang làm một trò chơi tic-tac-toe và tôi nghĩ tôi sắp hoàn thành. tôi đang cố gắng làm cho trò chơi có thể chơi nhiều hơn một lần trước khi kết thúc. Vì vậy, tôi đã đặt nó vào một hàm def[]… nhưng khi chạy nó thì kết quả là NameError: name 'turn' is not defined. Bất kỳ ý tưởng tại sao và làm thế nào để khắc phục điều này?


def game[]:
  blanksheet = "|1|2|3|\n|4|5|6|\n|7|8|9|"
  sheet = blanksheet
  print[sheet]

  gone = []
  turn = 0
  def play[XO,player,listXO]:
    global turn
    global sheet
    global listx
    global listo
    while True:
      num = input[player+" enter an available number where you want to put an "+XO+".\n > "]

      try:
        num = int[num]

      except ValueError:
        print["Not a valid number, try again."]
        continue
      
      if num < 1 or num > 9:
        print["Number not in correct range, try again."]
        continue
    
      if num in gone:
        print["Number already used, try again."]
        continue

      gone.append[num]
      listXO.append[num]
      turn += 1   #the "problem is here"
      sheet = sheet.replace[str[num],XO]
      print[sheet]
      break

  win = "h"
  listx = []
  listo = []
  def checkstatus[listXO, playerwin]:
    if len[listXO] >= 3:
      if 1 in listXO and 2 in listXO and 3 in listXO:
        winspeak[playerwin] #vertical
      elif 4 in listXO and 5 in listXO and 6 in listXO:
        winspeak[playerwin] #vertical
      elif 7 in listXO and 8 in listXO and 9 in listXO:
        winspeak[playerwin] #vertical
      elif 1 in listXO and 4 in listXO and 7 in listXO:
        winspeak[playerwin] #horizontal
      elif 2 in listXO and 5 in listXO and 8 in listXO:
        winspeak[playerwin] #horizontal
      elif 3 in listXO and 6 in listXO and 9 in listXO:
        winspeak[playerwin] #horizontal
      elif 1 in listXO and 5 in listXO and 9 in listXO:
        winspeak[playerwin] #diagonal
      elif 3 in listXO and 5 in listXO and 7 in listXO:
        winspeak[playerwin] #diagonal
      if [len[listx] + len[listo]] == 9:
        print["\n Neither player wins, thats a tie!"]
        exit[]

  def winspeak[player]:
    print["\n"+player+" wins!"]
    exit[]

  def checkplay[]:
    while win != "Xwin" or win != "Owin":
      if turn % 2 == 0:
        play["X","Player 1",listx]
        checkstatus[listx,"Player 1"]
      else:
        play["O","Player 2",listo]
        checkstatus[listo,"Player 2"]

  checkplay[]

game[]

Chào Drew,

Hãy nhớ rằng Python sử dụng thụt lề để cho biết nội dung bên trong hàm
và nội dung bên ngoài hàm. Bạn nên xác định chức năng của mình ở đầu
tệp của bạn. Mỗi chức năng nên bắt đầu ở cấp 1 [không được thụt lề] như thế này.


def game[]:
    # block is indented


# don't indent the function signature
def play[XO, player, listXO]:
    # block is indented


# Finally at the end:
game[]  # not indented

Không thụt lề chức năng bên trong các chức năng khác

Chừa một khoảng cách đẹp [hai dòng] giữa các chức năng để dễ dàng nhận biết
khi một chức năng kết thúc và chức năng tiếp theo bắt đầu. Điều đó không có gì khác biệt đối với
trình thông dịch Python, nhưng nó giúp người đọc [bạn] phát hiện ra nơi một
hàm kết thúc và hàm tiếp theo bắt đầu.

Các hằng số không bao giờ thay đổi phải được xác định ở đầu chương trình
của bạn, trước các hàm. Đó là quy ước để viết chúng
tất cả chữ hoa để người đọc biết rằng chúng không bao giờ được thay đổi.

BLANKSHEET = "|1|2|3|\n|4|5|6|\n|7|8|9|\n"

Các biến toàn cục của bạn phải được xác định trong hàm game[]

def game[]:
    global turn, sheet, listx, listo
    turn = 0
    sheet = BLANKSHEET
    print[sheet]
    ...

Có thể có những cải tiến và nhận xét khác cần thiết sau đó

Hãy vui vẻ với lập trình của bạn

Chủ Đề