Merhaba, benim şöyle altta paylaştığım şekilde ufak bir uygulamam var. Program başlatıldığında klasik “Hoşgeldiniz” vs. mesajı veriliyor. Ben kullanıcıya sürekli bu mesajı vermek istemiyorum, örneğin Mars’ın bize uzaklığını öğrendi ve devam etmek istedi. Bunu yapınca ekrana yine “Hoşgeldiniz” mesajı geliyor benim yapmak istediğim ise kullanıcı devam etmek istediği takdirde farklı bir mesaj göstermek.
import time
hiz = 300000
merkur = 77000000
venus = 38000000
mars = 55000000
jupiter = 591000000
saturn = 1000000000
uranus = 2000000000
neptun = 4000000000
while True:
sunum = """\n\nHoşgeldiniz, bu program Güneş Sistemi'mizdeki gezegenlerin bize ne kadar uzakta olduğunu hesaplar.\nNot: Işık Hızı, ışığın boşluktaki hızına verilen isimdir. Işığın boşlukta katettiği yol, saniyede 300.000km'dir.
1- Merkür
2- Venüs
3- Mars
4- Jüpiter
5- Satürn
6- Uranüs
7- Neptün
Dünya'mıza olan uzaklığını öğrenmek istediğiniz gezegeni listedeki numarasıyla belirtin\n"""
secenekler = ["e", "E", "evet", "Evet", "EVET"]
print(sunum)
hangiGezegen = input("-----> ")
if hangiGezegen == "1":
isikHiziMerkur = float(merkur / hiz)
kmMerkur = float(isikHiziMerkur * hiz)
print("\nMerkür bize ",isikHiziMerkur, "m/s Işık Hızı uzakta. \nkm olarak da ", kmMerkur, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
elif hangiGezegen == "2":
isikHiziVenus = float(venus / hiz)
kmVenus = float(isikHiziVenus * hiz)
print("\nVenüs bize ",isikHiziVenus, "m/s Işık Hızı uzakta. \nkm olarak da ", kmVenus, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
elif hangiGezegen == "3":
isikHiziMars = float(mars / hiz)
kmMars = float(isikHiziMars * hiz)
print("\nMars bize ",isikHiziMars, "m/s Işık Hızı uzakta. \nkm olarak da ", kmMars, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
elif hangiGezegen == "4":
isikHiziJupiter = float(jupiter / hiz)
kmJupiter = float(isikHiziJupiter * hiz)
print("\nJupiter bize ",isikHiziJupiter, "m/s Işık Hızı uzakta. \nkm olarak da ", kmJupiter, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
elif hangiGezegen == "5":
isikHiziSaturn = float(saturn / hiz)
kmSaturn = float(isikHiziSaturn * hiz)
print("\nSatürn bize ",isikHiziSaturn, "m/s Işık Hızı uzakta. \nkm olarak da ", kmSaturn, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
elif hangiGezegen == "6":
isikHiziUranus = float(uranus / hiz)
kmUranus = float(isikHiziUranus * hiz)
print("\nUranüs bize ",isikHiziUranus, "m/s Işık Hızı uzakta. \nkm olarak da ", kmUranus, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
elif hangiGezegen == "7":
isikHiziNeptun = float(neptun / hiz)
kmNeptun = float(isikHiziNeptun * hiz)
print("\nNeptün bize ",isikHiziNeptun, "m/s Işık Hızı uzakta. \nkm olarak da ", kmNeptun, "km uzaktadır.\n")
devam = input("Devam etmek istiyor musunuz? E/H: ")
if devam in secenekler:
continue
else:
print("Çıkılıyor...")
time.sleep(1)
break
sunum değişkenini döngünün dışına alın. print() fonksiyonu da sunum'u bir defaya mahsus olmak üzere ekrana yazdırsın. Mesajınızı da continue deyimini kullanmadan önce yazın. Sonra continue deyimini kullanın.
Uzaklik “uzunluk/saniye” (m/s) olarak degil, uzunluk (m) olarak olculur.
Hizi bilinen (ve sabit) bir seyin kat etmek icin harcayacagi zaman da kullanilabilir; bu noktada hizla (m/s) zamanin (s) carpimi bize uzunlugu (m) verir. (m/s × s = m)
Hesaplardan anladigim kadariyla burada kullanilan birim “isik saniyesi”, yani isigin bir saniyede gittigi mesafe, yani 300,000 km.
“Işık hızı uzaklık” yerine “ışık yılı uzaklık” diye bir ölçü var. Onu kullanmalısınız.
1 saniyede ışık 300000 km mesafe kateder.
1 yılda ışığın katedeceği mesafe = 300000 * 60 * 60 * 24 * 365 = 9460800000000 km’dir ve bu sayı 1 ışık yılı demektir. Yani ışık yılı, zaman değil, mesafe ölçüsüdür.
Teşekkürler @dildeolupbiten , başka bir soru için konu açacaktım da madem buradasınız sorayım;
Yukarıda mesafeleri örneğin 40 milyon, arada noktalar olmadığı için okunması biraz zor. Araya nasıl noktalar koyabilirim? 40000000 değil de 40.000.000
def f(string):
result = list(reversed(string))
for i in range(1, len(result)):
if i % 3 == 0:
result[i] = result[i] + ","
return "".join(reversed(result))
x = "40000000"
print(f(x))
Çıktı:
40,000,000
Yöntem:
print("{0:,}".format(40000000))
Çıktı:
40,000,000
Yöntem:
print(format(40000000, ",d"))
Çıktı:
40,000,000
Yöntem:
import locale
locale.setlocale(locale.LC_ALL, "")
x = "40000000"
print(locale.format("%d", int(x), 1))