Melanggar input pengguna dalam daftar

Saya mengalami masalah untuk keluar dari daftar saya yang diperluas menggunakan input pengguna. Saya rasa saya kehilangan cara menggunakan pernyataan if untuk menanyakan daftar item tertentu. Saya memerlukan daftar untuk meminta masukan ketika pengguna memasukkan -999. Saya juga perlu mengecualikan -999 dari daftar. Bisakah kamu membantuku?

print(scoreLst) hanya untuk menguji dan melihat cara kerjanya saat saya menggunakannya.

scoreLst =[]
score = ()
lst1 = True

print("The list ends when user inputs -999")
scoreLst.append(input("Enter the test score: "))
while lst1 == True:
    score1 = scoreLst.append(input("Enter another test score: "))
    print(scoreLst)     
    if score1 != -999:
        lst1 ==  True
    else:
        scoreLst.remove(-999)
        lst1 == False

person Andrew Bodin    schedule 04.11.2015    source sumber
comment
Tambahkan setelah validasi, bukan sebelumnya ke dalam daftar   -  person vks    schedule 04.11.2015


Jawaban (1)


Beberapa catatan:

  • ubah nilai ujian menjadi int

  • list.append mengembalikan None, jangan menugaskannya ke apa pun; gunakan scoreLst[-1] bukannya score1

  • jangan gunakan list.remove untuk menghapus elemen terakhir dari daftar, list.pop() akan berfungsi dengan baik

  • lst1 == False adalah perbandingan, lst1 = False adalah tugas

  • Anda akan membuat loop tak terbatas dan break setelah pengguna memasukkan -999, menurut saya lst1 tidak diperlukan

Hasil akhir:

scoreLst = []

print("The list ends when user inputs -999")
scoreLst.append(int(input("Enter the test score: ")))

while True:
    scoreLst.append(int(input("Enter another test score: ")))
    if scoreLst[-1] == -999:
        scoreLst.pop()
        break
person vaultah    schedule 04.11.2015
comment
Ini berfungsi dengan baik dan lebih sederhana. karena penasaran apakah saya harus menetapkan kehidupan list.pop di bawah? skorLst.pop(-999) istirahat - person Andrew Bodin; 04.11.2015
comment
@AndrewBodin list.pop() menghapus elemen terakhir dari daftar dan elemen terakhir adalah -999 (kami secara khusus memeriksanya di scoreLst[-1] == -999), jadi tidak, Anda tidak perlu melakukan hal lain. - person vaultah; 04.11.2015
comment
Ngomong-ngomong, jika Anda merasa jawaban saya membantu, Anda bisa menerima jawaban saya. - person vaultah; 04.11.2015
comment
Saya juga menghargai penjelasan mengapa segala sesuatunya berjalan sebagaimana mestinya. Itu telah diterima. - person Andrew Bodin; 04.11.2015