import random
a=random.sample([1,2,3,4,5,6,7,8,9],4)
while True:
ans=input("")
A=0
B=0
a=False
b=False
for i in ans:
if i not in “123456789”:
a=True
if ans.count(1)>1:
b=true
if len(ans)!=4:
print(“請翰入四個相異數字”)
elif “0” in ans:
print (”輸入數字不得為 o”)
elif a:
print ("請入數字")
elif b:
print(“請輪入不重複的數字")
else:
for i in range (4):
if a[i]==b[i]:
A=A+1
elif b[i] in a:
B=B+1
Dear,
從您的程式碼來看,可以發現以下幾個問題:
b=true
==> b=True
“
及”
,Python僅接受'
及"
這類的字串符While
迴圈裏面有一個for
迴圈,for
迴圈底下又有很多的if
條件式,不太能夠識讀您的階層關係??綜上所述,建議您敘述清楚您的問題,還有建議您使用Markdown
來呈現您的問題,這樣才有辦法幫你:)
# Your Code:
import random
a=random.sample([1,2,3,4,5,6,7,8,9],4)
while True:
ans=str(input(""))
A=0
B=0
a=False
b=False
for i in ans:
if i not in '123456789':
a=True
if ans.count(i)>1:
b=True
if len(ans)!=4:
print('請翰入四個相異數字')
elif '0' in ans:
print ('輸入數字不得為 o')
elif a:
print ("請入數字")
elif b:
print('請輪入不重複的數字')
else:
for i in range (4):
if a[i]==b[i]:
A=A+1
elif b[i] in a:
B=B+1
#Error Msg:
TypeError: 'bool' object is not subscriptable
因為在你的Code裡面你令了兩個變數a, b
,這兩個變數都是存布林值(bool)
而非字串(string)
,所以是不能做這樣的動作。
還是ChatGPT有耐心
第一行的import語句和生成數字的程式碼應該要分開寫,否則可能會產生語法錯誤。
在第5行的input語句後面應該加上冒號(:)以標明這是一個循環的開始。
在第11行和第13行的print語句中,引號不完整,應該要補上缺少的引號。
在第12行和第14行的print語句中,括號不匹配,應該要把左括號改成右括號。
在第16行、第18行和第19行的if語句中,變數名稱大小寫不一致,會產生NameError錯誤。應該統一變數名稱的大小寫。
在第17行的if語句中,應該要把1改成i,否則會一直為True。
在第20行的if語句中,b_flag的拼寫不正確,應該要把小寫的b改成大寫的B。
在第23行的if語句中,應該要把數字轉成整數才能進行比較。
在第25行的if語句中,缺少一
沒寫完的原因是今天 quota 用完了