Ngắt chương trình trong python

Bài viết được sự cho phép của tác giả Nguyễn Chí Thức

Lệnh break trong Python là giống như lệnh break trong C. Lệnh này kết thúc vòng lặp hiện tại và truyền điều khiển tới cuối vòng lặp. Lệnh break này có thể được sử dụng trong vòng lặp while và vòng lặp for. Nếu bạn đang sử dụng lồng vòng lặp, thì lệnh break kết thúc sự thực thi của vòng lặp bên trong và bắt đầu thực thi dòng code tiếp theo của khối.

Cú pháp của lệnh break là khá đơn giản:

break

Dưới đây là ví dụ minh họa lệnh break trong Python:

for letter in 'Python':     # Vi du thu nhat
   if letter == 'h':
      break
   print 'Chu cai hien tai :', letter
  
var = 10                    # Vi du thu hai
while var > 0:              
   print 'Gia tri bien hien tai la :', var
   var = var -1
   if var == 5:
      break

print "Good bye!"

Khi code trên được thực thi sẽ cho kết quả:

Chu cai hien tai : P
Chu cai hien tai : y
Chu cai hien tai : t
Gia tri bien hien tai la : 10
Gia tri bien hien tai la : 9
Gia tri bien hien tai la : 8
Gia tri bien hien tai la : 7
Gia tri bien hien tai la : 6
Good bye!

Lệnh continue trong Python

Lệnh continue trả về điều khiển tới phần ban đầu của vòng lặp. Lệnh này bỏ qua lần lặp hiện tại và bắt buộc lần lặp tiếp theo của vòng lặp diễn ra. Lệnh continue có thể được sử dụng trong vòng lặp while hoặc vòng lặp for. Dưới đây là cú pháp của lệnh continue:

continue

Dưới đây là ví dụ minh họa lệnh continue trong Python:

for letter in 'Python':     # Vi du thu nhat
   if letter == 'h':
      continue
   print 'Chu cai hien tai :', letter

var = 10                    # Vi du thu hai
while var > 0:              
   var = var -1
   if var == 5:
      continue
   print 'Gia tri bien hien tai la :', var
print "Good bye!"

Khi code trên được thực thi sẽ cho kết quả:

Chu cai hien tai : P
Chu cai hien tai : y
Chu cai hien tai : t
Chu cai hien tai : o
Chu cai hien tai : n
Gia tri bien hien tai la : 9
Gia tri bien hien tai la : 8
Gia tri bien hien tai la : 7
Gia tri bien hien tai la : 6
Gia tri bien hien tai la : 4
Gia tri bien hien tai la : 3
Gia tri bien hien tai la : 2
Gia tri bien hien tai la : 1
Gia tri bien hien tai la : 0
Good bye!

Lệnh pass trong Python

Lệnh pass, giống như tên của nó, được sử dụng khi một lệnh là cần thiết theo cú pháp nhưng bạn không muốn bất cứ lệnh hoặc khối code nào được thực thi. Lệnh pass là một hoạt động null và không có gì xảy ra khi nó thực thi. Dưới đây là cú pháp của lệnh pass:

pass

Dưới đây là ví dụ minh họa lệnh pass trong Python:

for letter in 'Python': 
   if letter == 'h':
      pass
      print 'Day la khoi pass'
   print 'Chu cai hien tai :', letter

print "Good bye!"

Khi code trên được thực thi sẽ cho kết quả:

Chu cai hien tai : P
Chu cai hien tai : y
Chu cai hien tai : t
Day la khoi pass
Chu cai hien tai : h
Chu cai hien tai : o
Chu cai hien tai : n
Good bye!

Chúc các bạn thành công!

Bài viết gốc được đăng tải tại ucode.vn

Có thể bạn quan tâm:

  • Các kĩ sư Grab thiết kế hệ thống “đàn hồi” sử dụng kĩ thuật Circuit Breaker như thế nào?
  • Python:Tạo một máy chủ HTTP đơn giản
  • Biết Python – quen ngay Julia

Xem thêm Việc làm lập trình python hấp dẫn trên TopDev

Lấy Qlàm đầu vào

Quit = int[input['Press Q to Quit']

Bạn đang yêu cầu Qlàm đầu vào, nhưng chỉ chấp nhận một int. Vì vậy, hãy loại bỏ intmột phần:

Quit = input['Press Q to Quit']

Bây giờ Quitsẽ là bất cứ điều gì người dùng nhập vào, vì vậy hãy kiểm tra "Q" thay vì True:

if Quit == "Q":

Thay vào đó sys.exit[0], bạn có thể chỉ cần kết thúc trong khi xem bằng breakhoặc chỉ returnkhi bạn đang ở trong một chức năng.

Ngoài ra, tôi không khuyên bạn nên đặt tên "Quit" cho một biến chỉ lưu thông tin đầu vào của người dùng, vì nó sẽ gây nhầm lẫn.

Và hãy nhớ rằng thụt lề rất quan trọng trong Python, vì vậy nó cần phải:

if run == False:
    choice = input['Press Q to Quit']
    if choice == "Q":
        # break or return or..
        import sys
        sys.exit[0]

Đó có thể chỉ là lỗi sao chép / dán.

Thụt lề và cú pháp

Tôi đã sửa lỗi thụt lề và xóa một số mã không liên quan [vì bạn sao chép vòng lặp bên ngoài và một số câu lệnh in] và nhận được điều này:

print['How old do you thing Fred the Chicken is?']
number = 17

run = True
while run:

    guess = int[input['Enter What You Think His Age Is....t']]

    if guess == number:
        print['Yes :D That is his age...']
        run = False
    elif guess < number:
        print['No, Guess a little higher...']
    elif guess > number:
        print['No, Guess a little lower....']

    if run == False:
        print['Game Over']
        choice = input['Press Q to Quit']
        if choice == 'q'
            break

Điều này đã tạo cho tôi một lỗi cú pháp:

blong @ ubuntu: ~ $ python3 gà.py
Tệp "gà.py", dòng 23
nếu lựa chọn == 'q'
^
SyntaxError: cú pháp không hợp lệ

Vì vậy, Python đang nói rằng có điều gì đó sai sau ifcâu lệnh. Nếu bạn nhìn vào các ifcâu lệnh khác , bạn sẽ nhận thấy rằng câu lệnh này bị thiếu :ở cuối, vì vậy hãy thay đổi nó thành:

if choice == 'q':

Vì vậy, với sự thay đổi đó, chương trình sẽ chạy và dường như làm những gì bạn muốn.

Một số gợi ý

  • Hướng dẫn của bạn nói "Nhấn Q để thoát", nhưng thực tế bạn chỉ chấp nhận "q" để thoát. Bạn có thể muốn chấp nhận cả hai. Python có một toán tử được gọior , nhận hai giá trị chân lý [ Truehoặc False] và trả về Truenếu một trong hai giá trị đó là True[nó thực sự làm được nhiều hơn điều này với các giá trị bên cạnh TrueFalse, hãy xem tài liệu nếu bạn quan tâm].

    Ví dụ:

    >> True or True
    True
    >>> True or False
    True
    >>> False or True
    True
    >>> False or False
    False
    

    Vì vậy, chúng ta có thể yêu cầu Q hoặc q với if choice == "Q" or choice == "q":.

    Một tùy chọn khác là chuyển đổi chuỗi thành chữ thường và chỉ kiểm tra q, sử dụng if choice.lower[] == "q":. Nếu choicelà Q, trước tiên nó sẽ chuyển nó thành q [với .lower[]], sau đó thực hiện phép so sánh.

  • Số của bạn luôn là 17. Python có một hàm được gọi là random.randint [] sẽ cung cấp cho bạn một số ngẫu nhiên, điều này có thể làm cho trò chơi trở nên thú vị hơn. Ví dụ, điều này sẽ làm cho độ tuổi của gà từ 5 đến 20 [bao gồm cả]:

    number = random.randint[5, 20]
    

13 hữu ích 2 bình luận chia sẻ

Để thoát khỏi dòng lệnh Python, tôi phải gõ exit []. Nếu tôi gõ thoát, nó nói

Use exit[] or Ctrl-Z plus Return to exit

Thông thường khi bạn gõ exit, bạn sẽ muốn thoát khỏi chương trình. Tại sao trình thông dịch đưa ra lỗi trên cho tôi khi biết tôi đang cố thoát khỏi dòng lệnh? Tại sao nó không thoát? Tôi biết nó không thành vấn đề và đó là một câu hỏi ngớ ngẩn nhưng tôi tò mò.

  • python

112 hữu ích 3 bình luận 205k xem chia sẻ

answer

12

Trong trình thông dịch python của tôi exitthực sự là một chuỗi và không phải là một hàm - 'Use Ctrl-D [i.e. EOF] to exit.'. Bạn có thể kiểm tra thông dịch viên của bạn bằng cách nhậptype[exit]

Trong python hoạt động những gì đang xảy ra là lối ra là một chức năng. Nếu bạn không gọi hàm, nó sẽ in ra chuỗi đại diện của đối tượng. Đây là hành vi mặc định cho bất kỳ đối tượng trả lại. Chỉ là các nhà thiết kế nghĩ rằng mọi người có thể cố gắng gõ thoát để thoát trình thông dịch, vì vậy họ đã biến biểu diễn chuỗi của hàm thoát thành một thông điệp hữu ích. Bạn có thể kiểm tra hành vi này bằng cách gõ str[exit]hoặc thậm chí print exit.

12 hữu ích 3 bình luận chia sẻ

answer

43

Điều này làm việc cho tôi, cách tốt nhất để đi ra khỏi dấu nhắc python.

lối thoát hiểm[]

43 hữu ích 0 bình luận chia sẻ

answer

36

Khi bạn gõ exitvào dòng lệnh, nó sẽ tìm thấy biến có tên đó và gọi __repr__[hoặc __str__] trên đó. Thông thường, bạn sẽ nhận được một kết quả như:

Nhưng họ đã quyết định xác định lại chức năng đó cho exitđối tượng để hiển thị một thông điệp hữu ích thay thế. Có hay không đó là một hành vi ngu ngốc hay không, là một câu hỏi chủ quan, nhưng một lý do có thể khiến nó không "thoát ra" là:

Ví dụ, giả sử bạn đang xem một số mã trong trình gỡ lỗi và một trong các đối tượng tham chiếu exithàm. Khi trình gỡ lỗi cố gắng gọi __repr__đối tượng đó để hiển thị chức năng đó cho bạn, chương trình đột nhiên dừng lại! Điều đó thực sự bất ngờ và các biện pháp để chống lại điều đó có thể làm phức tạp thêm mọi thứ [ví dụ, ngay cả khi bạn giới hạn hành vi đó vào dòng lệnh, nếu bạn cố in một số đối tượng có exitthuộc tính thì sao?]

36 hữu ích 1 bình luận chia sẻ

answer

18

Tôi khuyên bạn nên thoát trình thông dịch Python bằng Ctrl-D. Đây là mã ASCII cũ để kết thúc tập tin hoặc kết thúc truyền.

18 hữu ích 2 bình luận chia sẻ

answer

17

Thông báo này là __str__thuộc tính củaexit

hãy xem những ví dụ này :

1

>>> print exit
Use exit[] or Ctrl-D [i.e. EOF] to exit

2

>>> exit.__str__[]
'Use exit[] or Ctrl-D [i.e. EOF] to exit'

3

>>> getattr[exit, '__str__'][]
'Use exit[] or Ctrl-D [i.e. EOF] to exit'

17 hữu ích 0 bình luận chia sẻ

answer

7

Bởi vì trình thông dịch không phải là một trình bao nơi bạn cung cấp các lệnh, nó - tốt - một trình thông dịch. Những thứ bạn cung cấp cho nó là mã Python.

Cú pháp của Python là như vậy exit, tự nó, không thể là bất cứ thứ gì ngoài tên cho một đối tượng. Đơn giản chỉ cần đề cập đến một đối tượng thực sự không thể làm bất cứ điều gì [ngoại trừ những gì vòng lặp đọc-in thường làm; nghĩa là hiển thị một chuỗi đại diện của đối tượng].

7 hữu ích 0 bình luận chia sẻ

answer

5

Với Anaconda 4.5+ và Python 3.6+ trên Windows sử dụng

Ctrl+Z

hoặc là

exit[]

Trong một số trường hợp, bạn có thể phải sử dụng

Ctrl+Break

Nếu máy tính của bạn không có Breakchìa khóa thì xem tại đây .

5 hữu ích 0 bình luận chia sẻ

answer

3

Bạn có thể khắc phục điều đó.

Liên kết PYTHONSTARTUPđến một tập tin python với sau đây

# Make exit work as expected
type[exit].__repr__ = type[exit].__call__

Cái này hoạt động ra sao?

Dòng lệnh python là một vòng lặp đọc-đánh giá-in, đó là khi bạn gõ văn bản, nó sẽ đọc văn bản đó, đánh giá nó và cuối cùng là in kết quả.

Khi bạn gõ exit[]nó sẽ đánh giá một đối tượng có thể gọi được của kiểu site.Quittervà gọi __call__hàm của nó sẽ thoát khỏi hệ thống. Khi bạn gõ exitnó sẽ ước lượng cho cùng một đối tượng có thể gọi được, mà không gọi nó, đối tượng được in sẽ lần lượt gọi __repr__các đối tượng.

Chúng ta có thể tận dụng lợi thế này bằng cách liên kết __repr__đến __call__và do đó có được hành vi dự kiến ​​thoát khỏi sustem ngay cả khi chúng ta gõ exitmà không có dấu ngoặc đơn.

3 hữu ích 1 bình luận chia sẻ

answer

0

Nếu bạn bị kẹt trong dòng lệnh python và không có giải pháp nào ở trên phù hợp với bạn, hãy thử exit[2]

0 hữu ích 0 bình luận chia sẻ

answer

0

Để thoát khỏi thiết bị đầu cuối Python , chỉ cần làm:

exit[]

Vui lòng chú ý đó là một chức năng được gọi là hầu hết người dùng trộn nó với thoát mà không gọi, nhưng thiết bị đầu cuối Pyhton mới hiển thị một thông báo ...

hoặc như một phím tắt, nhấn:

Ctrl + D

trên bàn phím của bạn ...

0 hữu ích 1 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Bài Viết Liên Quan

Chủ Đề