Hướng dẫn what is the alternative of goto in python? - sự thay thế của goto trong python là gì?

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi biết tôi không thể sử dụng goto và tôi biết goto không phải là câu trả lời. Tôi đã đọc các câu hỏi tương tự, nhưng tôi không thể tìm ra cách để giải quyết vấn đề của mình.

Vì vậy, tôi đang viết một chương trình, trong đó bạn phải đoán một số. Đây là một trích đoạn của phần tôi có vấn đề:

x = random.randint(0,100)    

#I want to put a label here

y = int(raw_input("Guess the number between 1 and 100: "))

if isinstance( y, int ):
    while y != x:
        if y > x:
            y = int(raw_input("Wrong! Try a LOWER number: "))
        else:
            y = int(raw_input("Wrong! Try a HIGHER number "))
else:
    print "Try using a integer number"
    #And Here I want to put a kind of "goto label"`

Bạn sẽ làm gì?

Georgy

11K7 Huy hiệu vàng62 Huy hiệu bạc68 Huy hiệu Đồng7 gold badges62 silver badges68 bronze badges

Đã hỏi ngày 21 tháng 7 năm 2016 lúc 4:12Jul 21, 2016 at 4:12

Hướng dẫn what is the alternative of goto in python? - sự thay thế của goto trong python là gì?

1

Có rất nhiều cách để làm điều này, nhưng nhìn chung bạn sẽ muốn sử dụng các vòng lặp và bạn có thể muốn khám phá breakcontinue. Đây là một giải pháp khả thi:

import random

x = random.randint(1, 100)

prompt = "Guess the number between 1 and 100: "

while True:
    try:
        y = int(raw_input(prompt))
    except ValueError:
        print "Please enter an integer."
        continue

    if y > x:
        prompt = "Wrong! Try a LOWER number: "
    elif y < x:
        prompt = "Wrong! Try a HIGHER number: "
    else:
        print "Correct!"
        break

continue nhảy sang lần lặp tiếp theo của vòng lặp và break chấm dứt hoàn toàn vòng lặp.

.

import random

x = random.randint(1, 100)

prompt = "Guess the number between 1 and 100: "

while True:
    try:
        y = int(raw_input(prompt))
    except ValueError:
        print "Please enter an integer."
        continue

    if y > x:
        prompt = "Wrong! Try a LOWER number: "
    elif y < x:
        prompt = "Wrong! Try a HIGHER number: "
    else:
        print "Correct!"
        break
2 Gọi nữa, vì dựa trên văn bản bạn đang in, bạn dự định chọn từ 1 đến 100, không phải 0 đến 100.)

Đã trả lời ngày 21 tháng 7 năm 2016 lúc 4:24Jul 21, 2016 at 4:24

Python không hỗ trợ import random x = random.randint(1, 100) prompt = "Guess the number between 1 and 100: " while True: try: y = int(raw_input(prompt)) except ValueError: print "Please enter an integer." continue if y > x: prompt = "Wrong! Try a LOWER number: " elif y < x: prompt = "Wrong! Try a HIGHER number: " else: print "Correct!" break 3 hoặc bất cứ điều gì tương đương.

Bạn nên suy nghĩ về cách bạn có thể cấu trúc chương trình của mình bằng các công cụ Python cung cấp cho bạn. Có vẻ như bạn cần sử dụng một vòng lặp để thực hiện logic mong muốn của bạn. Bạn nên kiểm tra trang luồng điều khiển để biết thêm thông tin.

x = random.randint(0,100)
correct = False
prompt = "Guess the number between 1 and 100: "

while not correct:

  y = int(raw_input(prompt))
  if isinstance(y, int):
    if y == x:
      correct = True
    elif y > x:
      prompt = "Wrong! Try a LOWER number: "
    elif y < x:
      prompt = "Wrong! Try a HIGHER number "
  else:
    print "Try using a integer number"

Trong nhiều trường hợp khác, bạn sẽ muốn sử dụng một chức năng để xử lý logic bạn muốn sử dụng câu lệnh GOTO.

Đã trả lời ngày 21 tháng 7 năm 2016 lúc 4:36Jul 21, 2016 at 4:36

dmlichtdmlichtdmlicht

2.1682 Huy hiệu vàng14 Huy hiệu bạc15 Huy hiệu Đồng2 gold badges14 silver badges15 bronze badges

Bạn có thể sử dụng Vòng lặp vô hạn, và cũng bị phá vỡ rõ ràng nếu cần thiết.

x = random.randint(0,100)

#I want to put a label here
while(True):
    y = int(raw_input("Guess the number between 1 and 100: "))

    if isinstance( y, int ):

    while y != x:
    if y > x:
        y = int(raw_input("Wrong! Try a LOWER number: "))
    else:
        y = int(raw_input("Wrong! Try a HIGHER number "))
    else:
      print "Try using a integer number"

     # can put a max_try limit and break

Đã trả lời ngày 21 tháng 7 năm 2016 lúc 4:24Jul 21, 2016 at 4:24

Python không hỗ trợ

import random

x = random.randint(1, 100)

prompt = "Guess the number between 1 and 100: "

while True:
    try:
        y = int(raw_input(prompt))
    except ValueError:
        print "Please enter an integer."
        continue

    if y > x:
        prompt = "Wrong! Try a LOWER number: "
    elif y < x:
        prompt = "Wrong! Try a HIGHER number: "
    else:
        print "Correct!"
        break
3 hoặc bất cứ điều gì tương đương.DurgaDatta

Bạn nên suy nghĩ về cách bạn có thể cấu trúc chương trình của mình bằng các công cụ Python cung cấp cho bạn. Có vẻ như bạn cần sử dụng một vòng lặp để thực hiện logic mong muốn của bạn. Bạn nên kiểm tra trang luồng điều khiển để biết thêm thông tin.4 gold badges25 silver badges33 bronze badges

GOTOS được phổ biến trên toàn bộ khoa học máy tính và lập trình vì chúng dẫn đến mã rất không có cấu trúc.

Python (giống như hầu hết mọi ngôn ngữ lập trình ngày nay) đều hỗ trợ & nbsp; lập trình có cấu trúc & nbsp; điều khiển luồng sử dụng if/sau đó/khác, vòng lặp và chương trình con.

Chìa khóa để suy nghĩ một cách có cấu trúc là hiểu cách thức và lý do tại sao bạn phân nhánh trên mã.

Ví dụ, hãy giả vờ Python có A & nbsp; Nhìn vào mã sau. Trong đó nếu một số lớn hơn hoặc bằng 0 chúng ta in nếu nó

number = input()
if number < 0: goto negative
if number % 2 == 0:
   print "even"
else:
   print "odd"
goto end
label: negative
print "negative"
label: end
print "all done"

Nếu chúng ta muốn biết khi nào một đoạn mã được thực thi, chúng ta cần cẩn thận truy tìm lại trong chương trình và kiểm tra cách thức một nhãn được đưa ra - đó là điều không thể thực sự được thực hiện.

Ví dụ: chúng ta có thể viết lại ở trên như:

number = input()
goto check

label: negative
print "negative"
goto end

label: check
if number < 0: goto negative
if number % 2 == 0:
   print "even"
else:
   print "odd"
goto end

label: end
print "all done"

Ở đây, có hai cách có thể để đến "kết thúc" và chúng ta không thể biết cách nào được chọn. Khi các chương trình trở nên lớn, loại vấn đề này trở nên tồi tệ hơn và kết quả là & nbsp; mã spaghetti

So sánh, bên dưới là cách bạn & nbsp; sẽ & nbsp; viết chương trình này bằng Python:

number = input()
if number >= 0:
   if number % 2 == 0:
       print "even"
   else:
       print "odd"
else:
   print "negative"
print "all done"

Tôi có thể nhìn vào một dòng mã cụ thể và biết theo những điều kiện được đáp ứng bằng cách truy tìm lại cây & nbsp; nếu/sau đó/khác & nbsp; ; sẽ được chạy khi a & nbsp; ((số> = 0) == true) và (số % 2 == 0) == false).

Tôi chắc chắn điều này đã giúp trả lời truy vấn của bạn, chúc mừng!

Để biết thêm, hãy tham gia khóa học này để & NBSP; Lập trình Master Python.

Thanks!

Tôi có thể sử dụng goto trong python không?

Không, Python không hỗ trợ nhãn và goto.Đó là một ngôn ngữ lập trình có cấu trúc (cao).. It's a (highly) structured programming language.

Các lựa chọn thay thế được cấu trúc của goto là gì?

Thay vào đó, bạn luôn có thể sử dụng lối thoát lệnh gây ra việc chấm dứt ngay lập tức vòng lặp chạy và tiếp tục chương trình của bạn sau khi định danh enddo tương ứng.Một lệnh hữu ích khác là chu kỳ dừng thực hiện vòng lặp hiện tại và quay lại tiêu đề của vòng lặp để bắt đầu một chu kỳ mới.command exit which causes an immediate termination of the running loop and continuation your program after the corresponding enddo identifier. Another useful command is cycle which stops executing the current loop and goes back to the header of the loop to initiate a new cycle.

Làm thế nào để tôi đi đến một dòng trong Python?

Trong Python, ký tự dòng mới \ n, được sử dụng để tạo ra một dòng mới.Khi được chèn vào một chuỗi, tất cả các ký tự sau khi ký tự được thêm vào một dòng mới.the new line character “\n” is used to create a new line. When inserted in a string all the characters after the character are added to a new line.

Làm cách nào để bỏ qua mã trong Python?

Các câu lệnh phá vỡ và tiếp tục trong Python được sử dụng để bỏ qua các phần của vòng lặp hiện tại hoặc thoát ra khỏi vòng lặp hoàn toàn.Câu lệnh Break có thể được sử dụng nếu bạn cần thoát ra khỏi hoặc trong khi vòng lặp và di chuyển vào phần mã tiếp theo.break and continue statements in Python are used to skip parts of the current loop or break out of the loop completely. The break statement can be used if you need to break out of a for or while loop and move onto the next section of code.