Hướng dẫn python skipping lines of code - python bỏ qua dòng mã

Hãy bắt đầu từ đầu:

think=input ("Think of an animal. Type ready when you want to begin")
think=think.upper()
#FUR
if think=="READY" :
   fur=input ("Does it have fur?") 
else :
   print ("I'll be waiting")

Nếu người dùng nhập bất cứ thứ gì khác ngoại trừ "sẵn sàng" cho đầu vào đầu tiên được lưu trữ trong "Hãy nghĩ" thì nếu điều kiện sẽ sai và chương trình của bạn ngay lập tức sẽ chuyển sang phần khác để trong phần thứ hai:

if fur=="YES" :
   legs=input ("Does it walk on four legs?") :
elif fur=="NO" :
   reptile=input ("Is it a reptile?")

Nó sẽ làm hỏng chương trình của bạn vì không có biến nào được gọi là lông và bạn muốn so sánh nó với một cái gì đó.

Đối với tình huống như thế này (chờ đợi cho đến khi người dùng nhập vào đầu vào dự kiến ​​của bạn), tốt hơn là sử dụng một vòng lặp vô hạn và khi người dùng nhập đầu vào mong đợi của bạn thoát ra khỏi đó bằng cách sử dụng Break.

Vì vậy, bạn phải thay đổi phần đầu tiên thành:

think=input ("Think of an animal. Type ready when you want to begin")
think=think.upper()
#THINK
while True:
    if think=="READY" :
        fur=input ("Does it have fur?")
        break
    else :
        print ("I'll be waiting")

Đối với các phần khác, điều chính xác như trên có thể xảy ra một lần nữa (ví dụ như bạn đã đề cập nếu người dùng nói "có" để "nó đi trên bốn chân?" Một lần nữa bạn không có bất kỳ biến nào được gọi là Reptile mà bạn muốn so sánh nó với một cái gì đó khác trong các dòng tiếp theo)

Tôi đề nghị sử dụng các điều kiện lồng nhau:

#FUR
if fur=="YES" :
    legs=input ("Does it walk on four legs?")
    #LEGS
    if legs=="YES" :
       pet=input ("Do people own it as a pet?")
    elif legs=="NO" :
       marsupial=input("Is it a marsupial?")
elif fur=="NO" :
    reptile=input ("Is it a reptile?")
    #REPTILE
    if reptile=="YES" :
       shell=input ("Does it have a shell?") 
    if reptile=="NO" :
       fly=input ("Can it fly?")

Cũng đừng quên:

1-X quang: Trong phần này của mã của bạn

legs=input ("Does it walk on four legs?") :

2-nếu bạn muốn nhận một dòng mới sau khi hỏi một cái gì đó từ người dùng như trong dòng đầu tiên, \ n phải hữu ích

think=input ("Think of an animal. Type ready when you want to begin\n")

Hoặc thậm chí có thể sử dụng in cho chuỗi (Nguyên nhân In tự động sẽ thêm một dòng mới sau mỗi lần bạn sử dụng):

print("Think of an animal. Type ready when you want to begin")
think=input()

Xin chào! Tôi đã viết Tetris trong Python bằng cách sử dụng pygame vào một ngày khác và đang gặp vấn đề kỳ lạ. Có một phần của mã dường như không chạy. Đây là chức năng có liên quan

def update():
    #time.time()
    global level, currTimeSD, currTimeBI, currTimeFD, currTimeSAC, timeShiftDown, timeFastDrop, timeBetweenInput, timeShiftAfterClear, kLeft, kRight, kDown, xCursor, yCursor, currMinoRot, currMino, swapMino, currMinoShape, swapMinoShape, alreadySwapped, minoActive, shiftAfterClear

    if time.time() < currTimeSD:
        currTimeSD = 0
    if time.time() < currTimeBI:
        currTimeBI = 0
    if time.time() < currTimeFD:
        currTimeFD = 0
    if time.time() < currTimeSAC:
        currTimeSAC = 0

    if shiftAfterClear == True:
        if time.time() - currTimeSAC >= timeShiftAfterClear:
            print("in shift after clear")
            currTimeSAC = time.time()
            shiftAfterClear = False
            shiftDownBoard()
            currMinoShape = 0
            currMino = generateRandomMino()
            minoActive = True
        return

    if time.time() - currTimeBI >= timeBetweenInput and anyKeyTrue():
        currTimeBI = time.time()
        if kLeft == True and xCursor != 0:
            if checkSafeShiftX(-1) == True:
                xCursor -= 1
        if kRight == True and xCursor != 9:
            if checkSafeShiftX(1) == True:
                xCursor += 1
        
        if kQ == True:
            if currMinoRot == 0:
                safe, newX = checkSafeRot(3)
                if safe:
                    xCursor = newX
                    currMinoRot = 3
            else:
                safe, newX = checkSafeRot(currMinoRot - 1)
                if safe:
                    xCursor = newX
                    currMinoRot -= 1
        if kW == True:
            if currMinoRot == 3:
                safe, newX = checkSafeRot(0)
                if safe:
                    xCursor = newX
                    currMinoRot = 0
            else:
                safe, newX = checkSafeRot(currMinoRot + 1)
                if safe:
                    xCursor = newX
                    currMinoRot += 1

        if kE == True and alreadySwapped == False:
            alreadySwapped = True
            if swapMinoShape == 0:
                swapMinoShape = currMinoShape
                swapMino = currMino
                currMino = generateRandomMino()
            else:
                swpms = swapMinoShape
                swpm = swapMino
                swapMinoShape = currMinoShape
                swapMino = currMino
                currMinoShape = swpms
                currMino = swpm
                xCursor, yCursor = generateStartCoord()
        
        if kUp == True:
            dropDownAndAdd()
            alreadySwapped = False
            checkCleared = clearBoard()
            if checkCleared == True:
                minoActive = False
                shiftAfterClear = True
                currTimeSAC = time.time()
            else:
                currMinoShape = 0
                currMino = generateRandomMino()
        if kEsc == True:
            print("Goodbye!")
            exit()

    if (time.time() - currTimeSD >= timeShiftDown) or (time.time() - currTimeFD >= timeFastDrop and kDown == True):
        currTimeFD = time.time()
        currTimeSD = time.time()
        if checkSafeShiftY() == True:
            yCursor += 1
        else:
            print("hi there", flush = True)
            addToBoard()
            for a in range(10):
                if board[a][0] == 1:
                    print("Sorry, you lose!")
                    exit()
            alreadySwapped = False
            checkCleared = clearBoard()
            print("whatup", flush = True)
            if checkCleared == True:
                print("genius", flush=True)
                print("whatup1", flush = True)
                tmpLevel = level
                level = 5 #int(linesCleared / 10)
                if tmpLevel != level:
                    if timeShiftDown - 0.08 < 0.03:
                        timeShiftDown = 0.03 
                    else:
                        timeShiftDown -= 0.08
                minoActive = False
                shiftAfterClear = True
                currTimeSAC = time.time()
            else:
                currMinoShape = 0
                currMino = generateRandomMino()
    return

Xuống gần cuối mã Khối này:

                print("genius", flush=True)
                print("whatup1", flush = True)
                tmpLevel = level
                level = 5 #int(linesCleared / 10)
                if tmpLevel != level:
                    if timeShiftDown - 0.08 < 0.03:
                        timeShiftDown = 0.03 
                    else:
                        timeShiftDown -= 0.08

không chạy. Khi tôi chuyển nó lên đến

if shiftAfterClear == True:

Chặn gần đỉnh của chức năng mọi thứ đều chạy tốt. Bất kỳ ý tưởng những gì đang xảy ra? cảm ơn!

Bài viết: 11.43811,438

Chủ đề: 435435

Tham gia: Tháng 9 năm 2016Sep 2016

Danh tiếng: 441 441

if fur=="YES" :
   legs=input ("Does it walk on four legs?") :
elif fur=="NO" :
   reptile=input ("Is it a reptile?")
0

Đây không phải là vấn đề của bạn, mà là dòng mã thứ hai ở đây ghi đè lên dòng xóa trước đó 105
remove line 105

Trước

if fur=="YES" :
   legs=input ("Does it walk on four legs?") :
elif fur=="NO" :
   reptile=input ("Is it a reptile?")
1 Thêm:
if fur=="YES" :
   legs=input ("Does it walk on four legs?") :
elif fur=="NO" :
   reptile=input ("Is it a reptile?")
2
add:
if fur=="YES" :
   legs=input ("Does it walk on four legs?") :
elif fur=="NO" :
   reptile=input ("Is it a reptile?")
2

Hiển thị kết quả