python-3.x 如何使用for循环不断地添加数字

pdkcd3nj  于 2023-01-18  发布在  Python
关注(0)|答案(2)|浏览(124)

当用户键入某些内容时,我如何添加数字?(使用for循环)

example:
empty= []
counter= 0
food = input("What is your favourite food?")

if user enter something in the food input then +1.
output: empty=1

after exiting the program, when the user enters something in the food input again then it will +1 again

output empty = 2

我应该使用for循环吗?如何使用?

6kkfgxo0

6kkfgxo01#

编辑:因为你想在每次创建程序的新示例时读取计数器,所以你需要将它存储在一些外部源中,例如一些文件或数据库。你可以使用基本文件处理或SQLite。
以下内容应该可以帮助您开始使用SQLite。

import sqlite3

database_path = "test.db"
init_query = "CREATE TABLE IF NOT EXISTS food (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL);"
insert_query = "INSERT INTO food ('name') values ('{food_name}');"
count_query = "SELECT COUNT(id) FROM food;"

count = 0

conn = sqlite3.connect(database_path)

with conn:

    # Initialize DB if it hasn't been created already.
    conn.execute(init_query)
    conn.commit()

    # Get count of all the food items entered.
    count_result = conn.execute(count_query)
    if count_result:
        counter = count_result.fetchone()[0]
        print("Counter: {}".format(counter))

    food = input("What is your favorite food?")

    if food:
        formatted_insert_query = insert_query.format(food_name=food)
        conn.execute(formatted_insert_query)
        conn.commit()
o2gm4chl

o2gm4chl2#

在每个循环中,调用scanner.nextInt()和scanner.hasNextInt(),但没有以有意义的方式使用hasNextInt()的结果(您可能已经注意到,如果输入的不是数字,则“Invalid Number”输出不会发生)。
对nextInt()的第一次调用将阻塞,直到您输入一个数字,然后hasNextInt()将再次阻塞,因为该数字已经被读取,您将询问是否会有一个新的数字,下一个数字是从www.example.com读取System.in,但您实际上并没有在此迭代中使用它(您只是询问它是否在那里)。然后在下一次迭代中,nextInt()不会阻塞,因为扫描程序已从System.in提取了一个编号,并且可以立即返回该编号,因此您看到的所有后续提示实际上都在等待hasNextInt()的输入。
这总计11个输入事件:第一个nextInt()加上所有10个hasNextInt()

相关问题