ねえ、これはここでの私の 2 番目の投稿です。私は Uni で学んでいる間、Python は初めてです。これは、「辞書からキーを自動的に呼び出す」という最初の質問から続いています。
だから私はもともとこれをすべて同じforループ内に設定していましたが、エラーが発生しました
The error was:__setitem__
Attribute not found.
You are trying to access a part of the object that doesn't exist.
dict と keys について間違った考えを持っていますか? 私は、pictureCount=3 の場合、for ステートメントを 3 回実行し、picture[1]、picture[2]、picture[3] 変数を作成すると考えました。最初のループを通過しているように見えますが、画像 [2] に到達するとエラーが発生します。私の考えでは、絵は存在しない [2] 唯一の絵 [1] が何度も作成されたということです。他に必要なコードがある場合は、お知らせください。
for p in range(1,pictureCount+1):
picture[p]=makePicture(pickAFile())
for p in range(1,pictureCount+1):
width[p]=getWidth(picture[p])
height[p]=getHeight(picture[p])
totalWidth=totalWidth+width[p]
height=getHeight(picture[p])
if height > totalHeight:
totalHeight=height
これが完全なコードです。
def comicStrip():
picture={}
width={}
height={}
totalWidth=0
totalHeight=0
pixelCount=0
loopCounter=0
pictureCount=requestInteger("How many pictures do you want in the comic strip?(1-4)")
while pictureCount <1 or pictureCount >4:
pictureCount=requestInteger("How many pictures do you want in the comic strip?(1-4)")
for p in range(1,pictureCount+1):
picture[p]=makePicture(pickAFile())
for p in range(1,pictureCount+1):
width[p]=getWidth(picture[p])
height[p]=getHeight(picture[p])
totalWidth=totalWidth+width[p]
height=getHeight(picture[p])
if height > totalHeight:
totalHeight=height
cStrip=makeEmptyPicture(totalWidth, totalHeight)
pixelCount=0
while loopCounter < pictureCount:
sourceX=0
for targetX in range(pixelCount,width[p]):
sourceY=0
for targetY in range(0,height[p]):
color = getColor(getPixel(picture[1],sourceX,sourceY))
setColor(getPixel(cStrip,targetX,targetY),color)
sourceY=sourceY+1
pixelCount=pixelCount+1
sourceX=sourceX+1
addRectFilled(cStrip,0,0,p1Width,20,white)
addRect(cStrip,0,0,p1Width,20)
addRect(cStrip,0,0,p1Width,p1Height)
caption=requestString("Enter the caption for this picture.")
addText(cStrip,1,19,str(caption))
loopCounter=loopCounter+1
コピーして貼り付けた後に再調整する必要があるため、間隔が正しいと確信しています。