Cách khởi động lại một chức năng trong Python

Bạn đang tự hỏi làm thế nào để khởi động lại chương trình Python của mình từ bên trong chính nó? . Bạn chỉ cần thêm một dòng vào chương trình của mình

Hãy làm điều này bằng cách sử dụng một ví dụ. Giả sử chúng ta có một chương trình lấy điểm từ người dùng và cho biết các nhận xét

Ví dụ: nếu điểm là 90, thì nhận xét sẽ xuất sắc. Nếu người dùng nhập điểm chính xác thì chương trình sẽ chạy đúng

Ngoài ra, để cho điểm chính xác, điểm đó phải là một số và nằm trong khoảng từ 0-100

Bây giờ nếu người dùng nhập điểm không hợp lệ, ta muốn chương trình hiển thị thông báo lỗi rồi khởi động lại. Chúng ta có thể dễ dàng làm như vậy bằng cách sử dụng dòng mã sau

 

subprocess.call([sys.executable, os.path.realpath(__file__)] +
sys.argv[1:])

 

Đảm bảo nhập sys, os và sub process trước khi sử dụng dòng trên

Mã hoàn chỉnh được đưa ra dưới đây

 

import os
import sys
import subprocess

def calculateGrade():

    try:

        val = float(input("Enter your marks: "))

        if val >= 90 and val <= 100:

            print("Outstanding")

        elif val >= 80 and val < 90:

            print("Excellent")

        elif val >= 70 and val < 80:

            print("Very Good")

        elif val>= 60 and val < 70:

            print("Needs Improvement")

        elif val>=30 and val <60:

            print("Work hard")

        elif val>=0 and val<30:

            print("Poor")

        else:

            raise ValueError("Enter a valid score, i.e., between 0 and 100")

    except Exception as err:

        print("ERROR:", err)


        print("Restarting the program")

        print("------------------------")

        subprocess.call([sys.executable, os.path.realpath(__file__)] +
sys.argv[1:]) #restart the program


calculateGrade()

 

đầu ra

Cách khởi động lại một chức năng trong Python
Cách khởi động lại một chức năng trong Python

Cách khởi động lại một chức năng trong Python
Cách khởi động lại một chức năng trong Python

Python Khởi động lại đầu ra chương trình

 

Trong ví dụ trên, khi người dùng nhập sai đầu vào, một ngoại lệ sẽ xuất hiện. Nó được xử lý trong khối ngoại trừ, nơi chúng tôi hiển thị thông báo lỗi và khởi động lại chương trình

Cách khởi động lại một chức năng trong Python
Cách khởi động lại một chức năng trong Python

Marcel

này các cậu. Là tôi, Marcel, hay còn gọi là Maschi. Trên MaschiTuts, đó là tất cả về hướng dẫn. Bất kể chủ đề của bài viết là gì, mục tiêu luôn giống nhau. Cung cấp cho các bạn những hướng dẫn chuyên sâu và hữu ích nhất

Bạn có thể sử dụng hàm input() để khởi động lại vòng lặp while trong Python. Và sử dụng câu lệnh if để khởi động lại số vòng lặp

Đây là cú pháp đơn giản cho nó, sử dụng logic của riêng bạn

i=2
while i < n:
    if something:
       do something
       i += 1
    else: 
       do something else  
       i = 2 #restart the loop

Ví dụ khởi động lại vòng lặp while trong Python

Mã ví dụ đơn giản khi vòng lặp khởi động lại nếu người dùng nhập “0”, nếu không vòng lặp sẽ chạy cho đến khi “i < 5”. Để dừng nó sử dụng câu lệnh break

i = 0
while i < 5:

    restart = (input("Enter 0 to restart loop: "))

    if restart != "0":
        print("Loop ", i)
        i += 1
    else:
        print("Loop Restarted")
        i = 0  # restart the loop

đầu ra

Cách khởi động lại một chức năng trong Python

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về Python trong khi mã vòng lặp này

Ghi chú. IDE. PyCharm 2021. 3. 3 (Phiên bản cộng đồng)

cửa sổ 10

Trăn 3. 10. 1

Tất cả các Ví dụ về Python đều nằm trong Python 3, vì vậy có thể nó khác với python 2 hoặc các phiên bản nâng cấp

Cách khởi động lại một chức năng trong Python

Rohit

Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật

Vòng lặp while kiểm tra một điều kiện để xác định xem thân vòng lặp có được thực thi hay không. Bạn có thể đặt lại điều kiện về giá trị ban đầu để khởi động lại vòng lặp một cách hiệu quả

Trong ví dụ sau, bạn sử dụng điều kiện vòng lặp i < 3 và tăng giá trị của i trong mỗi lần lặp lại vòng lặp. Bạn có thể đặt lại giá trị của biến vòng lặp thành i = 0 để khởi động lại vòng lặp ngay khi người dùng nhập vào

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
0

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart

Bạn sử dụng hàm

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
1 tích hợp sẵn của Python để lấy đầu vào của người dùng trong mỗi lần lặp và trả về dưới dạng một chuỗi

Đây là một ví dụ chạy trong đó vòng lặp không được khởi động lại vì người dùng chưa bao giờ sử dụng

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
0 làm đầu vào (mọi dòng khác là đầu vào của người dùng, trong khi dòng thứ hai là đầu vào của người dùng đầu tiên)

________số 8_______

Và đây là một ví dụ trong đó vòng lặp được khởi động lại ở lần lặp thứ ba do đầu vào của người dùng

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
0

i = 0
alice
i = 1
bob
i = 2
r
i = 0
alice
i = 1
bob
i = 2
carl

Trong trường hợp bạn cần xem lại nhanh về cách xử lý đầu vào của người dùng, hãy xem hướng dẫn này

Hàm input() của Python [Sơ lược 6 phút]

Cách khởi động lại một chức năng trong Python

Xem video này trên YouTube

Giải pháp 2. Vòng khởi động lại lồng nhau

Một cách khác để buộc một vòng lặp khởi động lại nếu một điều kiện nhất định được đáp ứng là nhúng vòng lặp khởi động lại vào một vòng lặp while bên ngoài để thực hiện lặp lại nó cho đến khi đáp ứng một điều kiện thoát

Đoạn mã sau cho biết cách thực hiện việc này trong Python

restart = True

while restart:
    for i in range(3):
        print('i =', i) # loop body

        # Default: execute once
        restart = False
        
        # Restart loop logic (any restart condition):
        if input() == 'r':
            restart = True
            break # force restart

Chúng tôi tạo một khởi động lại biến ban đầu được đặt thành

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
4. Vòng lặp bên ngoài sẽ thực thi cho đến khi biến khởi động lại được đặt thành
i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
5

Bây giờ, bạn chạy vòng lặp chính có khả năng phải được khởi động lại nếu một điều kiện nhất định được đáp ứng. Đoạn mã sử dụng điều kiện khởi động lại

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
6, vì vậy nếu người dùng nhập ký tự
i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
0, vòng lặp sẽ được khởi động lại

Quá trình khởi động lại được thực hiện bằng cách đặt lại biến khởi động lại thành

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
4, vì vậy vòng lặp bên ngoài sẽ chạy lại một lần nữa, điều đó có nghĩa là toàn bộ vòng lặp bên trong được khởi động lại

Toàn bộ chu trình này được lặp lại cho đến khi điều kiện khởi động lại không bao giờ được đáp ứng. Điều này tự động đặt biến

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
9 thành
i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
5, nghĩa là vòng lặp bên ngoài không được thực hiện lại, nghĩa là vòng lặp bên trong không được khởi động lại

Đây là một ví dụ chạy khi vòng lặp không được khởi động lại vì người dùng chưa bao giờ sử dụng ____________0 làm đầu vào

________số 8_______

Và đây là một ví dụ trong đó vòng lặp được khởi động lại ở lần lặp thứ ba do đầu vào của người dùng

i = 0
while i < 3:
    print('i =', i) # loop body

    # Restart loop logic
    i = i + 1
    if input() == 'r':
        i = 0 # force restart
0

i = 0
alice
i = 1
bob
i = 2
r
i = 0
alice
i = 1
bob
i = 2
carl

Đi đâu từ đây?

Đủ lý thuyết. Hãy thực hành một số

Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa

Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế

Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?

🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn

Tham gia hội thảo trên web miễn phí ngay bây giờ

Cách khởi động lại một chức năng trong Python

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây