亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

For 循環在停止之前總是運行 2 次

For 循環在停止之前總是運行 2 次

慕妹3146593 2022-06-14 15:36:49
我正在嘗試將一個非?;镜臄祵W程序放在一起。下面的函數以前工作過,但現在 for 循環總是在函數停止之前運行 2 次完整迭代。它應該只運行 10 次。我嘗試了幾種縮進和 for / while 循環以及 range 和 xrange 的組合。它進行了 19 次迭代。def gameADD():    a = 1    b = 50    error = 0    correct = 0    myguess = 0    x = 0    for x in range(0, 10):        print "for loop",x                    num1 = random.randint(a, b)        num2 = random.randint(a, b)        result = (num1 + num2)        print "  ",num1        print "+ ",num2        print "___________"        print " "        myguess = input('Hvad er Resultatet?:  ')        if myguess != result:            print            "Det er forkert"            print            "KOM IGEN MESTER"            error = error + 1            print            "forkert times", x        if myguess == result:            print            "__"            print            "GODT!!! DET ER RIGTIG"            print            result, " er korrekt"            print            "Du har lavet ", error, " fejl."            correct = correct + 1            print            "Du har lavet ", correct, " rigtig."            print            "korrekt times", x        x = x + 1        return error觸發函數的代碼:pick=input('Hvad vil du lave? :')    if pick == 1:        os.system('clear')         start = time.time()        gameADD()        end = time.time()        calctime = end-start        print (calctime)," sekunder"        #insert new data after each round        con = lite.connect('math.db')        with con:            cur = con.cursor()            user = username            ttime = calctime            errors = gameADD()            cur.execute("INSERT INTO stats VALUES(?, ?, ?, ?);",[user,"1",ttime,errors])                    raw_input('Tryk ENTER for at komme til hovedmenu....')        os.system('clear')
查看完整描述

2 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

您使用了 for 循環,但隨后添加了條件,就好像您正在使用 while 循環一樣。for 循環處理 x = x +1 和 x=0 部分本身,因此您不需要它們。


for 循環和 x=x+1 都將 x 加 1。


def gameADD():

    a = 1

    b = 50

    error = 0

    correct = 0

    myguess = 0

    for x in range(0, 10):

        print "for loop",x            

        num1 = random.randint(a, b)

        num2 = random.randint(a, b)

        result = (num1 + num2)


        print "  ",num1

        print "+ ",num2

        print "___________"

        print " "

        myguess = input('Hvad er Resultatet?:  ')


        if myguess != result:

            print

            "Det er forkert"

            print

            "KOM IGEN MESTER"

            error = error + 1

            print

            "forkert times", x


        if myguess == result:

            print

            "__"

            print

            "GODT!!! DET ER RIGTIG"

            print

            result, " er korrekt"

            print

            "Du har lavet ", error, " fejl."

            correct = correct + 1

            print

            "Du har lavet ", correct, " rigtig."

            print

            "korrekt times", x



    return error


查看完整回答
反對 回復 2022-06-14
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

這是正確的版本(我已經標記了我進行更改的地方):


def gameADD():

    a = 1

    b = 50

    error = 0

    correct = 0

    myguess = 0

    x = 0  # <<-- comment or remove this line

    for x in range(0, 10):

        print "for loop",x            

        num1 = random.randint(a, b)

        num2 = random.randint(a, b)

        result = (num1 + num2)


        print "  ",num1

        print "+ ",num2

        print "___________"

        print " "

        myguess = input('Hvad er Resultatet?:  ')


        if myguess != result:

            print

            "Det er forkert"

            print

            "KOM IGEN MESTER"

            error = error + 1

            print

            "forkert times", x


        if myguess == result:

            print

            "__"

            print

            "GODT!!! DET ER RIGTIG"

            print

            result, " er korrekt"

            print

            "Du har lavet ", error, " fejl."

            correct = correct + 1

            print

            "Du har lavet ", correct, " rigtig."

            print

            "korrekt times", x



        #x = x + 1 # <<-- comment or remove this line

    return error   # <<-- indented to the left

這是結果(應該運行 10 次):


>>> gameADD()

for loop 0

   5

+  28

___________


Hvad er Resultatet?:  4




for loop 1

   12

+  25

___________


Hvad er Resultatet?:  5




for loop 2

   25

+  10

___________


Hvad er Resultatet?:  6




for loop 3

   9

+  12

___________


Hvad er Resultatet?:  4




for loop 4

   44

+  32

___________


Hvad er Resultatet?:  5




for loop 5

   31

+  49

___________


Hvad er Resultatet?:  6




for loop 6

   12

+  45

___________


Hvad er Resultatet?:  4




for loop 7

   12

+  49

___________


Hvad er Resultatet?:  3




for loop 8

   18

+  22

___________


Hvad er Resultatet?:  2




for loop 9

   13

+  10

___________


Hvad er Resultatet?:  3




10

>>>



查看完整回答
反對 回復 2022-06-14
  • 2 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號