import random
a=random.randint(0,10) if a>2 else 100
print(a)
以上代碼構思是:生成一個亂數 當這個數大于2的時候輸出此數,否則輸出100
但實際輸出結果總是100,沒有其他結果

無論輸出多少次,a的值都是100,難道a沒有小于或等于2的時候嗎?好奇怪
而當把代碼中a>2改成a>1時
輸出的結果又全是亂數,無論重繪多少次都沒有輸出100
難道沒有a小于等于1的時候嗎?
這段代碼哪里有問題嗎,為什么輸出結果解釋不通?
uj5u.com熱心網友回復:
else 100 -》 else a=100uj5u.com熱心網友回復:
#如果b的值大于0,將b直接賦值給a,否則將a設定為0
a=b if b>0 else 0
a=a>2 ?random.randint(0,10) : 100,a都沒賦值直接比較嗎,這沒報變數不存在的錯誤?
uj5u.com熱心網友回復:
這段代碼翻譯一下其意思是:import random
if a >2 :
a=random.randint(0,10)
else:
a= 100
print(a)
按道理是報錯,你的能運行?
uj5u.com熱心網友回復:
還真沒報錯,我昨天一直運行這行代碼看了一下午
結果今天上來就報錯了

一臉懵!
uj5u.com熱心網友回復:
短路賦值先判斷條件,再進行賦值,這里先判斷 if a>2 else 100,這里的 a 都還沒有賦值,直接進行了判斷,肯定是報錯的。uj5u.com熱心網友回復:
import randoma=random.randint(0,10) if random.randint(0,10)>2 else 100
print(a)
uj5u.com熱心網友回復:
#如果b的值大于0,將b直接賦值給a,否則將a設定為0
a=b if b>0 else 0
a=a>2 ?random.randint(0,10) : 100,a都沒賦值直接比較嗎,這沒報變數不存在的錯誤?
還真沒報錯,我昨天一直運行這行代碼看了一下午
結果今天上來就報錯了
一臉懵!
肯定報錯啊。估計是沒清記憶體重新運行的緣故。
uj5u.com熱心網友回復:
import random
b=random.randint(0,10)
a = b if b>2 else 100
print(a)
uj5u.com熱心網友回復:
import randoma=random.randint(0,10)
print(a)if a>2 else 100
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/16625.html
上一篇:c#資料匯入
