Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
klncblglr=open("kullanıcıbilgileri.txt","r")
sayı=klncblglr.read(1)
print(sayı
print('Bu kodu kaybetmeyeceğiniz bir yerde saklayınız!!')
int(sayı)-1
str(sayı)
klncblglr=open("kullanıcıbilgileri.txt","w")
klncblglr.write(sayı)
Burada dosyadan aldığım sayıyı ekrana basıp sonra Int'e çevirip 1 çıkarıp Str'ye çevirip(çünkü dosyaya int olarak yazmıyor illa STR olacak) dosyaya yazması gerekiyor. Ama hata veriyor.
Verdiği hata kodları;
Python:
Traceback (most recent call last):
File "C:\Users\HP\Desktop\python\yaş sorma.py", line 40, in <module>
int(sayı)-1
ValueError: invalid literal for int() with base 10: ''
Kodun tamamını atsan daha iyi olur. Özellikle .txt dosyasında ne olduğunu bilmeliyiz.
.read içine 1 yazınca 1 karakter alıyordur umarım. Bilgim yok bu konu hakkında.
Yine de bunu dener misin?
Python:
klncblglr=open("kullanıcıbilgileri.txt","r")
sayı=klncblglr.read(1)
print(sayı)
print("Bu kodu kaybetmeyeceğiniz bir yerde saklayınız!!")
a = int(sayı)-1
klncblglr=open("kullanıcıbilgileri.txt","w")
klncblglr.write(a)
Kodun tamamını atsan daha iyi olur. Özellikle .txt dosyasında ne olduğunu bilmeliyiz.
.read içine 1 yazınca 1 karakter alıyordur umarım. Bilgim yok bu konu hakkında.
Yine de bunu dener misin?
Python:
klncblglr=open("kullanıcıbilgileri.txt","r")
sayı=klncblglr.read(1)
print(sayı)
print("Bu kodu kaybetmeyeceğiniz bir yerde saklayınız!!")
a = int(sayı)-1
klncblglr=open("kullanıcıbilgileri.txt","w")
klncblglr.write(a)
Traceback (most recent call last):
File "C:\Users\HP\Desktop\python\yaş sorma.py", line 40, in <module>
a=int(sayı)-1
ValueError: invalid literal for int() with base 10: ''
import time
import random
print("""|------------|
|Hoşgeldiniz!|
|------------|""")
print('Yapmak istediğiniz işlemi seçiniz!!(Giriş yapmak için 1,Kayıt olmak için 2 yazınız.)')
işlem=input("")
if işlem=='1':#buna devam et giriş yap için !!
print('E-posta adresi giriniz !')
epstsoru=input("")
if işlem=='2':
print('Lütfen yaşınızı Giriniz!!')
yaş=int(input(""))
if yaş < 13:
print("Yaşınız bu programı kullanmaya yetmemektedir!")
time.sleep(10)
exit()
if yaş>=13:
print("""|----------------------------------|
|Yaşınız Uygun.Kayıt Olabilirsiniz.|
|----------------------------------|""")
print('E-Posta adresi giriniz.')
Eposta=input("")
print('Kullanıcı Adı belirleyin.')
kullanıcıadı=input("")
print('Lütfen Şifre giriniz.')
şifre=input("")
klncblglr=open("kullanıcıbilgileri.txt","r")
sayı=klncblglr.readline(1)
print(sayı)
print('Bu kodu kaybetmeyeceğiniz bir yerde saklayınız!!')
a=int(sayı)-1
str(a)
klncblglr=open("kullanıcıbilgileri.txt","w")
klncblglr.write("")
klncblglr.write(Eposta+' ')
klncblglr.write(kullanıcıadı+' ')
klncblglr.write(şifre)
klncblglr.write('\n'+a)
klncblglr.close()
Input alırken metin verebiliyorsun Python'da. 6. satırı o şekilde yaptım.
Türkçe desteklese de değişken adlarında kullanılması tavsiye edilmez. Hatta bazı sistemlerde hata bile çıkartabiliyor.
Tek tırnağı tek karakter gösterecekken kullanın.
13 yaş kontrolünden sonra else diyebilirsiniz.
28 satırda sadece str deyip içine bir şeyler yazmışsınız. Bu değeri bir değişkene atamalısınız.
Dosyayı r ile açtıktan sonra kapatmayıp w ile açmaya çalışmışsınız. Ya direkt r+ ile açın ya da w+. Dosyayı kapatabilirsiniz de.
Sanırım istediğiniz bu şekilde. Kayıt olduktan sonra dosyadaki sayıyı bir eksiltiyor. Ardından kullanıcı adı, mail, ve şifreyi yazıp alt satıra da o bir eksiltilmiş sayıyı yazıyor. Başta ne olduğunu anlamadığım için adını eksiBir yaptım. Değiştirebilirsiniz onu.
Tekrar çalıştırdığınızda hata verecektir çünkü dosyadaki ilk satırda artık bir sayı yazmıyor. Ona göre farklı dosyaya kaydedebilirsiniz.
Python:
import time
import random
print("""|------------|
|Hosgeldiniz!|
|------------|""")
islem = input("Yapmak istediğiniz islemi seçiniz!!! (Giris yapmak için 1, Kayit olmak için 2 yaziniz.)")
if islem == '1': #buna devam et giris yap için !!
epstsoru = input("E-posta adresi giriniz!")
if islem =='2':
yas = int(input("Lütfen yasinizi Giriniz!!!"))
if 13 > yas:
print("Yasiniz bu programi kullanmaya yetmemektedir!")
time.sleep(10)
exit()
else:
print("""|-----------------------------------|
|Yasiniz Uygun. Kayit Olabilirsiniz.|
|-----------------------------------|""")
Eposta = input("E-Posta adresi giriniz.")
kullaniciadi = input("Kullanici Adi belirleyin.")
sifre = input("Lütfen sifre giriniz.")
klncblglr = open("C:/Users/bekir/Desktop/kullanicibilgileri.txt","r")
sayi = klncblglr.readline()
print(sayi)
print("Bu kodu kaybetmeyeceğiniz bir yerde saklayiniz!!")
eksiBir = str(int(sayi)-1)
klncblglr.close()
klncblglr = open("C:/Users/bekir/Desktop/kullanicibilgileri.txt","w")
klncblglr.write("")
klncblglr.write(Eposta + ' ')
klncblglr.write(kullaniciadi + ' ')
klncblglr.write(sifre)
klncblglr.write('\n' + eksiBir)
klncblglr.close()
Input alırken metin verebiliyorsun Python'da. 6. satırı o şekilde yaptım.
Türkçe desteklese de değişken adlarında kullanılması tavsiye edilmez. Hatta bazı sistemlerde hata bile çıkartabiliyor.
Tek tırnağı tek karakter gösterecekken kullanın.
13 yaş kontrolünden sonra else diyebilirsiniz.
28 satırda sadece str deyip içine bir şeyler yazmışsınız. Bu değeri bir değişkene atamalısınız.
Dosyayı r ile açtıktan sonra kapatmayıp w ile açmaya çalışmışsınız. Ya direkt r+ ile açın ya da w+. Dosyayı kapatabilirsiniz de.
Sanırım istediğiniz bu şekilde. Kayıt olduktan sonra dosyadaki sayıyı bir eksiltiyor. Ardından kullanıcı adı, mail, ve şifreyi yazıp alt satıra da o bir eksiltilmiş sayıyı yazıyor. Başta ne olduğunu anlamadığım için adını eksiBir yaptım. Değiştirebilirsiniz onu.
Tekrar çalıştırdığınızda hata verecektir çünkü dosyadaki ilk satırda artık bir sayı yazmıyor. Ona göre farklı dosyaya kaydedebilirsiniz.
Python:
import time
import random
print("""|------------|
|Hosgeldiniz!|
|------------|""")
islem = input("Yapmak istediğiniz islemi seçiniz!!! (Giris yapmak için 1, Kayit olmak için 2 yaziniz.)")
if islem == '1': #buna devam et giris yap için !!
epstsoru = input("E-posta adresi giriniz!")
if islem =='2':
yas = int(input("Lütfen yasinizi Giriniz!!!"))
if 13 > yas:
print("Yasiniz bu programi kullanmaya yetmemektedir!")
time.sleep(10)
exit()
else:
print("""|-----------------------------------|
|Yasiniz Uygun. Kayit Olabilirsiniz.|
|-----------------------------------|""")
Eposta = input("E-Posta adresi giriniz.")
kullaniciadi = input("Kullanici Adi belirleyin.")
sifre = input("Lütfen sifre giriniz.")
klncblglr = open("C:/Users/bekir/Desktop/kullanicibilgileri.txt","r")
sayi = klncblglr.readline()
print(sayi)
print("Bu kodu kaybetmeyeceğiniz bir yerde saklayiniz!!")
eksiBir = str(int(sayi)-1)
klncblglr.close()
klncblglr = open("C:/Users/bekir/Desktop/kullanicibilgileri.txt","w")
klncblglr.write("")
klncblglr.write(Eposta + ' ')
klncblglr.write(kullaniciadi + ' ')
klncblglr.write(sifre)
klncblglr.write('\n' + eksiBir)
klncblglr.close()
Traceback (most recent call last):
File "C:\Users\HP\Desktop\python\yaş sorma.py", line 40, in <module>
eksibir=str(int(sayı)-1)
ValueError: invalid literal for int() with base 10: ''
Dosyadaki ilk satırda sadece sayı yazarken çalıştırdığınızda vermez. 10 tabanında sayı olarak gerçeli olmayan bir şey ile uğraştığınızı söylüyor hata.
Asıl sorun burada sayi = klncblglr.readline() gelen değer. Bu değer sayı olursa sorun olmaz.