def calorie_counter():
# Create widgets outside the loop
food_type_widget = st.empty()
frequency_per_week_widget = st.empty()
times_per_day_widget = st.empty()
quantity_widget = st.empty()
food_dataset = load_food_data()
drop_down_column = food_dataset["Food_Name"]
ft = []
fpw = []
tpd = []
quan = []
carbohydrates_value = 0
protein_value = 0
fat_value = 0
fiber_value = 0
total_weekly_calories = 0
food_items = []
num_food_items = st.number_input("Enter the number of food items: ", step = 1)
counter = 0
while counter < num_food_items:
food_type = food_type_widget.selectbox("Select the type of food:", drop_down_column, key=f"food_type_input_{len(ft)}")
frequency_per_week = frequency_per_week_widget.number_input("Enter the frequency per week for food:", key=f"frequency_per_week_input_{len(fpw)}", step=1)
times_per_day = times_per_day_widget.number_input("Enter how many times per day for food:", key=f"times_per_day_input_{len(tpd)}", step=1)
quantity = quantity_widget.number_input("Enter the quantity in grams for food:", key=f"quantity_input_{len(quan)}", step=1)
food_items.append({
'food_type': food_type,
'frequency_per_week': frequency_per_week,
'times_per_day': times_per_day,
'quantity': quantity
})
ft.append(food_type)
fpw.append(frequency_per_week)
tpd.append(times_per_day)
quan.append(quantity)
counter += 1
In the above code, I need to get the number of food items from the user and using that I need to run the loop and get different food type, frequency per week, times per day and quantity value. But the problem is I couldn’t get multiple values from the loop eventhough it is in a loop. The app is running locally in the streamlit version1.32.2