具有相同变量的多个循环

时间:2016-01-19 15:03:33

标签: python loops python-3.x

在代码结束之前没有问题。最后,当用户输入1或2或3或4时,它不会在txt中写入任何内容。我希望用户在开头写一些学生,并为txt命名。之后,我希望用户为每个与表元素链接的学生选择成功排名,并将所选元素打印到txt。问题在哪里?

#-*- coding: cp1254 -*
from time import sleep
#---------------------------
bilissel_olay = [
    "Dikkatini çeken nesne/durum/olayı ayrıntılarıyla açıklayabiliyor ve sorular sorabiliyor.",
    "Dikkatini çeken nesne/durum/olaya yönelik sorular sorabiliyor.",
    "Dikkatini çeken nesne/durum/olaya yönelik sorular sormada ve açıklamada desteğe ihtiyacı var.",
    "Dikkatini çeken nesne/durum/olaya yönelik sorular sormada ve açıklamada başarısız."]
bilissel_sayi = [
    "İleriye doğru birer birer ritmik sayabiliyor. Saydığı nesnelerin kaç tane olduğunu söyleyebiliyor ve rakamları tanıyabiliyor.",
    "Saydığı nesnelerin kaç tane olduğunu söyleyebiliyor ve rakamları tanıyabiliyor.",
    "Rakamları tanımakta ve saydığı nesnelerin kaç tane olduğunu söylemekte zorlanıyor."]
bilissel_siniflandirma = [
    "Nesne veya varlıkları çeşitli özelliklerine göre gözlemleyebiliyor, eşleştirebiliyor ve gruplayabiliyor.",
    "Nesne/varlıkları yapıldığı malzemeye göre gruplayabiliyor. Nesne/varlıkları büyüklüklerine göre sıralayabiliyor.",
    "Nesne veya varlıkların tanınmasında desteklenmeli.",
    "Nesne veya varlıkları tanımakta zorluk çekiyor."]
bilissel_olay = [
    "Bir olayın olası nedenlerini söyleyebiliyor. Probleme çeşitli çözüm yolları önerebiliyor.",
    "Olayları oluş zamanına göre sıralayabiliyor.",
    "Neden/sonuç ilişkisi kurmada ve olayların oluş sırasını sıralamada desteklemeli.",
    "Neden/sonuç ilişkisi kurmada ve olayların oluş sırasını sıralamada zorlanıyor."]
bilissel_geometri = [
    "Bir örüntüde eksik bırakılan öğeyi tamamlayabiliyor. Ölçme sonucunu tahmin edebiliyor ve standart olmayan birimlerle ölçebiliyor.",
    "Bir örüntüde eksik bırakılan öğeyi tamamlama yeteneği gelişiyor.",
    "Bir örüntüde eksik bırakılan öğeyi tamamlama konusunda desteklenmeli."]
#---------------------------
ogrenci_listesi = []
x=0
y=eval(input("Lütfen Öğrenci Sayınızı Giriniz:  "))
print ("İşleniyor..")
sleep (2)
# Buraya e okuldan id lerin çekilip id lerin tablolara göre oluşturulduğu kodlar gelecek.
print ("Programın kurulumu için e-okul liste sırasına göre öğrencilerinizi hatırlayabileciğiniz bir isim girmeniz gerekmektedir.")
sleep (2)
while x<y:
    ogrenci= input("Lütfen \(e-okul\)\! sırasına göre %s\. öğrencinin adını giriniz:  " %(x+1))
    f= open('%s.txt' %(ogrenci), 'w')
    ogrenci_listesi.append (ogrenci)
    x=x+1
print ("Öğrenci bilgileri kaydediliyor.")
print (ogrenci_listesi)
sleep(2)
print ("Kurulum tamamlandı. Bilgi girme bölümüne yönlendiriliyorsunuz...")
sleep (2)
print ("""
1) Bilişsel Gelişim
2) Sosyal-Duygusal Gelişim
3) Motor Gelişimi
4) Dil Gelişimi
5) Özbakım""")
gelisim_secim = eval(input("Girdi seçmek istediğiniz bölüm numarasını sadece sayı olarak yazınız:  "))
if gelisim_secim == 1:
    x=0
    y1=y
    while x<y1:

        print (ogrenci_listesi[x]+" adlı öğrenci için lütfen bilişsel alanından aşağıdaki soruları başarı sırasına göre oylayınız.")
        print ("Sorular yükleniyor...")
        sleep(1)
        bilissel_olay_1 = input("Nesne/durum/olayları sıralamada ve sorular sormada (1/2/3/4):  ")

        if bilissel_olay_1 == 1:
            f = open('%s.txt' %(ogrenci_listesi[x]) ,'a')
            f.write(bilissel_olay[3])
        elif bilissel_olay_1 == 2:
            f = open('%s.txt' %(ogrenci_listesi[x]) ,'a')
            f.write(bilissel_olay[2])
        elif bilissel_olay_1 == 3:
            f = open('%s.txt' %(ogrenci_listesi[x]) ,'a')
            f.write(bilissel_olay[1])
        elif bilissel_olay_1 == 4:
            f = open('%s.txt' %(ogrenci_listesi[x]) ,'a')
            f.write(bilissel_olay[0])
        x=x+1

2 个答案:

答案 0 :(得分:3)

您应关闭文件以查看更改。

f = open('%s.txt' %(ogrenci_listesi[x]) ,'a')
if bilissel_olay_1 == 1:
    f.write(bilissel_olay[3])
elif bilissel_olay_1 == 2:
    f.write(bilissel_olay[2])
elif bilissel_olay_1 == 3:
    f.write(bilissel_olay[1])
elif bilissel_olay_1 == 4:
    f.write(bilissel_olay[0])
x=x+1
f.close() #close the file when you are done writing.

或者在处理文件时更好地使用with()

with open('%s.txt' %(ogrenci_listesi[x]) ,'a') as f:
    ...
    #do your stuff.

如果您使用with,则无需手动close文件。

在评论中编辑这是实际问题:
由于input返回string1为整数,因此始终为False。因此,请将1更改为"1"bilissel_olay_1 = int(input())

答案 1 :(得分:1)

我改变了

bilissel_olay_1 = input("Nesne/durum/olayları sıralamada ve sorular sormada (1/2/3/4):  ")

bilissel_olay_1 = int(input("Nesne/durum/olayları sıralamada ve sorular sormada (1/2/3/4):  ")) 

它有效!

谢谢大家!