Python怎么看哪行代碼出錯(python報錯信息怎么看)
本篇文章給大家談?wù)凱ython怎么看哪行代碼出錯,以及python報錯信息怎么看對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
這個是哪里出錯了 python的列表推導(dǎo)式?
題主你好,
你的問題出在不了解列表推導(dǎo)的語法.
先說一下你寫的代碼問題出在哪, 因為列表推導(dǎo)是一種語法糖, 語法糖這東西我的理解就是代碼精簡式的寫法, 你可以簡單的理解為正常的寫法可能要10行, 用語法糖可能1行就搞定了. 優(yōu)點是可以減少代碼量, 缺點也顯而易見,就是相對于常規(guī)寫法一開始學(xué)起來理解要困難一些.
列表推導(dǎo)寫法:? n = [ j if j*5==10 ]
把你的這個1行的列表推導(dǎo)轉(zhuǎn)化為常規(guī)寫法要3行:
轉(zhuǎn)化后的代碼不知題主有沒有看出問題,
這三行代碼單看都沒有問題, 第一行是給n賦一個空列表; 第二行是判斷變量j*5的結(jié)果是10;第三行是結(jié)果第二行的條件成立,則將j追加到列表n中.
但問題也出來了, 第二行中, if的條件部分, 變量j的值是啥呀? 你前面都沒有定義變量j,這里就直接用肯定是會出錯的, 因為python中的變量是前面定義了之后, 后面才能使用.
舉個小例子:
從上面圖片可以看出, 在沒有a賦值時,你直接用,會提示你a這個變量還沒定義; 而你給a賦值3后, 再使用時,會直接輸出a的值,3 就是這個道理.
-----
下面說下最常規(guī)的用法:
一般的列表推導(dǎo)都是for與if同時存在:
n = [j for j in range(10) if j*5==10]
照著上面講的邏輯說, for語句中給變量j提供值, 然后if中把這個值代入條件表示式看是否成立,如果成立,則將j追加到列表n中.
我們把這個列表推導(dǎo)轉(zhuǎn)換為常規(guī)寫法:
上面代碼就形成了一個完整的閉環(huán)了.
所以學(xué)習(xí)列表推導(dǎo)很關(guān)鍵的一點是題主能否在常規(guī)代碼與列表推導(dǎo)之間進行轉(zhuǎn)換, 如果可以的話,題主寫完列表推導(dǎo)后可以將其轉(zhuǎn)化為常規(guī)代碼去看, 如果常規(guī)代碼沒問題, 則列表推導(dǎo)自然也就是對的.
-----
擴展閱讀:
網(wǎng)頁鏈接該鏈接中有一些簡單的例子,里面既給出了列表推導(dǎo)的寫法也給出了相對應(yīng)的常規(guī)寫法,題主可以研究一下這二者是怎么轉(zhuǎn)換的, 不難.
=====
希望可以幫到題主, 歡迎追問.
幫我看看看這個Python代碼哪里錯了?
沒看錯這是求根公式吧?
其他沒問題,關(guān)鍵在于這一句:
在python中,這種一行多個賦值的方法是不合法的,不能用逗號,得用分號:
或者你也可以分行寫
完整代碼:
from?numpy.lib.scimath?import?sqrt
a=float(input());b=float(input());c=float(input())
d=0
if?a==0:
????d=(-1)*c/b
????print(d)
????
elif?b**2-4*a*c0:
????x1=((-1)*b+sqrt(b**2-4*a*c))/2*a
????x2=((-1)*b-sqrt(b**2-4*a*c))/2*a
????print(x1,x2)
????
elif?b*2-4*a*c==0:
????d=((-1)*b)+sqrt(b**2-4*a*c)/2*a
????print(d)
else:
????x1=((-1)*b+sqrt(b**2-4*a*c))/2*a
????x2=((-1)*b-sqrt(b**2-4*a*c))/2*a
????print(x1,x2)
測試(我用的python2)
python的代碼錯誤,可以幫我看看這一段代碼哪里錯了嗎?
a=3
b=2
c=0
if a == 0 and b == 0 :
print("不是方程")
else:
d= b*b-4*a*c
if d = 0 :
print("x1=",-b+pow(d,1/2)/2/a)
print("x2=",-b-pow(d,1/2)/2/a)
else:
print("方程無實根")
PS:注意代碼行的縮進,這在Python程序中表示層級關(guān)系;還有print語句后有英文狀態(tài)下的括號
Python怎么看哪行代碼出錯的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于python報錯信息怎么看、Python怎么看哪行代碼出錯的信息別忘了在本站進行查找喔。
掃描二維碼推送至手機訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。