class Boulder(pygame.sprite.DirtySprite):
def __init__(self):
self.diameter = random.randint(2, 300)
self.radius = self.diameter / 2
self.x_pos = random.randint(0, SCREEN_WIDTH)
self.image = pygame.Surface((self.diameter, self.diameter))
#self.image.fill((255,255,255,128))
pygame.draw.circle(self.image, (128,128,128), (self.radius, self.radius), self.radius)
self.rect = pygame.Rect(self.x_pos, SCREEN_HEIGHT - (20 + self.radius),
self.diameter, self.diameter)
self.image = self.image.convert()
self.landing_ok = False
self.dirty = False
return super(pygame.sprite.DirtySprite, self).__init__()
<\code>
bu kodlarda hata alıyorum sorunu nasıl halledebilirim?(hata: TypeError: an integer is required (got type str))
Hatanın tamamı;
Traceback (most recent call last):
File “C:\Users\İMAJ\Desktop\lunarlander\aa.py”, line 216, in
lander, moon, boulders, allsprites = initialize()
File “C:\Users\İMAJ\Desktop\lunarlander\aa.py”, line 208, in initialize
boulders = [Boulder() for i in range(random.randint(2,5))]
File “C:\Users\İMAJ\Desktop\lunarlander\aa.py”, line 208, in
boulders = [Boulder() for i in range(random.randint(2,5))]
File “C:\Users\İMAJ\Desktop\lunarlander\aa.py”, line 195, in init
pygame.draw.circle(self.image, (“128”,“128”,“128”), (“self.radius”, “self.radius”), self.radius)
TypeError: an integer is required (got type str)
Merhabalar, kodu aşağıdaki yollardan birisiyle düzenler misiniz?
```python
KODUNUZ
```
ya da
<code>
KODUNUZ
</code>
Hataya gelince,
pygame.draw.circle(self.image, (“128”,“128”,“128”), (“self.radius”, “self.radius”), self.radius)
TypeError: an integer is required (got type str)
Hatadan da anlayabileceğimiz gibi, sayı bekleyen fonksiyona string türünde veri vermişsiniz (bkz: "128"
, "self.radius"
) bunları düzelttiğiniz takdirde program bu hatayı vermeyecektir.
bu sefer de aynı satırda “”" TypeError: integer argument expected, got float “”" hatası alıyorum
Hatada “Tamsayı bekliyordum ama kayan noktalı sayı aldım.” diyor kısaca. Anlaşılan self.radius
’u kayan noktalı sayı yerine tamsayı vermeniz gerekiyor.
self.radius’a random.randint(2, 5) verilmişti (0) yaptım düzeldi ama anlamadım halbuki (2, 5) iki buçuk demek değil birde 0 dışında rakam kabul etmiyor.yardımcı olduğunuz için tşkkrler program sorunsuz çalıştı.
2,5
Türkçede kullanılıyor. İngilizcede ve dolayısıyla pythonda 2.5
kullanılıyor.