具有相同变量的多个循环

2024-06-16 12:38:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在代码结束之前没有问题。最后,当用户输入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

Tags: retxtvesleepprinttanolayvarl
2条回答

您应该关闭文件以查看更改。你知道吗

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

成功了!你知道吗

谢谢大家!你知道吗

相关问题 更多 >