TypeError: can't multiply sequence by non-int of type 'float'

p=input(“Dairenin çapını giriniz:”)
yarıçap=int(çap)/2
pi = 3,14159
alan = pi * (yarıçap * yarıçap)
print(Alan)

çalıştırdığımda;
TypeError: can’t multiply sequence by non-int of type ‘float’
hatası veriyor. Sebebi nedir? Nasıl düzeltebilirim. Teşekkürler…

  • çap degiskeni yok
  • olsa integer olmasi sart degil
  • integer olacaksa kullanirken degil tanimlarken cevirmek lazim
  • Ondalikli sayilar , ile degil . ile belirtilir
  • pi icin math.pi (veya math.tau [=2π]) var
1 Like

ilaveten print edilmek istenen Alan değişkeni de tanımlı değil. alan olarak tanımlanmış.
değişken tanımlama hatalarını yok saydığımızda, esas hatanın sebebi pi sayısının virgülle yazılması. aşağıda düzeltilmiş hali mevcut.

çap=input(“Dairenin çapını giriniz:”)
yarıçap=int(çap)/2
pi = 3.14159
alan = pi * (yarıçap * yarıçap)
print(alan)

1 Like

bakiyomoyle’nin dediği gibi hatanın önemli sebeplerinden biri, Nokta yerine Virgül kullanımı.
Python’da Virgül;

  • Fonksiyon içerisinde parametreleri,
  • Listeler, Demetler, Sözlükler içerisinde öğeleri ayırmak için kullanılıyor.

Ondalıklı (float) sayıları tanımlarken virgül değil, nokta kullanmalıyız.

cap = int(input("Daire Çapını milimetre cinsinden giriniz: "))
pi = 22/7
alan = pi * (cap/2)**2
print("{} mm. çaplı dairenin alanı: {} mm2'dir.".format(cap, alan))

Çıktı:

Daire Çapını giriniz: 10
10 mm. çaplı dairenin alanı: 78.57142857142857 mm2'dir.
1 Like