繁体   English   中英

具有相同变量的多个循环

[英]Multiple Loops with same variables

直到代码末尾才有问题。 最后,当用户输入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

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

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返回string ,并且1为整数,因此它将始终为False 因此,将1更改为"1"bilissel_olay_1 = int(input())

我变了

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):  ")) 

而且有效!

谢谢你们!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM