+ 1
Hello, I need help making a for loop in python
This is my first time coding. i was tasked to make a for loop that inputs 5 numbers and outputs their total. I tried my best but there seems to be something wrong with the output and it prints "Enter a Number" when it isnt supposed to...what have i done wrong? https://code.sololearn.com/cd2d4JNKq75L/?ref=app
26 odpowiedzi
+ 2
if you pass an argument to input() (eg input("Enter a Number") ), it uses that argument as a prompt.
Unfortunately the sololearn playground doesn't accept input normally, but only all at once at the beginning, so things like that behave strangely here.
+ 2
Don't write anything inside input method
and enter inputs like this:
4
5
6
7
8
now enter
+ 2
Евгений haha yes i read it. im honestly very happy with the response from the community. although some code went above my head cus im a complete noob it was very cool to see how yall came up with the various solutions.
and no it doesnt matter for me if its in the same line or not, just needed the code to work and show the proper output(that is the sum of 5 numbers using for loop).
ive never really coded before and this was fun. found out sololearn has a few problems but ig ill get used to it or just learn more once i go to more advanced lessons.
again tysm :)
+ 1
Have you tried the beginner's python course here?
+ 1
ꘘꫀⲅძ᥆͟ᥙ᥉᯽
If there are different inputs then your code will work?
+ 1
ꘘꫀⲅძ᥆͟ᥙ᥉᯽ your code reads just one number and multiplies it by 5.
+ 1
Yes you are right it won't work for multidigit thanks so we can fix the code to be like this:
nums=input().split(" ")
num=[ float(i) for i in nums]
print(sum(num))
+ 1
No problem we are ejoing and no problem if it solved we just make doscussions and this is my solution if you use multy line thanks for all and welcome.
num=[x:=input() for i in range(5)]
ct=[float(i) for i in num]
print (sum(ct))
+ 1
You don't need `x` in the first line.
+ 1
Looks like the last solution is when each number is on separate line, and not mixed (like two on one line, three on the other etc.) Then this could be compacted to this:
```
print(sum(float(input()) for _ in range(5)))
```
+ 1
I've come up with the following solution for reading numbers on undefined number of lines with several on each line into a flat list:
```
import sys
numbers = [
float(num)
for line in sys.stdin.readlines()
for num in line.split()
]
```
This even handles empty lines, tabs, double spaces, leading whitespace characters, etc. I've split it into separate lines for readability.
0
ah i c, but why did the string in the input prompt become an output?
0
ohh, tysm guys
0
I've only done a few lessons from introduction to python. im currently learning pseudocode and a python at school
0
Total = 0
Num = float(input())
for Count in range(5):
Total = Total + Num
print("The total is", Total)
"""
Input: 3
Output: 15.0
#Explanation:
float(3) = 3.0
Total = 0
for Count in range(5):
Total = Total+ Num
So,
0+3.0 = 3.0 >> range 1
3.0+3.0 = 6.0 >> range 2
6.0+3.0 = 9.0 >> range 3
9.0+3.0 = 12.0 >> range 4
12.0+3.0 = 15.0 >> range 5
"""
0
nums=input()
num=[float(i) for i in nums if i!=" "]
print(sum(num))
# try this cod but input all numbers in on line with spaces between them
#Ex: input will be like this: 3 7 5 3 2
#output will be: 20.0
#code explination:
# first we will think how we can make all numbers in list then use sum() function.
#if we input: 3 4 5
#then nums='3 4 5'
#in second line we used "List Comprehensions" you can get more information about it in intermediate python lessons in sololearn.
# so if our code was like this
num=[i for i in nums]
print(num)
#output will be : [ '3', ' ' , '4' , ' ' , '5' ]
#notice numbers saved in list as string and we have spaces not just numbers so if we want to remove the spaces we will use if condition.
num=[i for i in nums if i !=" "]
print(num)
#output will be: [ '3' , '4' , '5']
#notice we removed spaces. now we just have one small problem which is number's type saved as string we can solve that just by using int() or float() as you needed
num=[float(i) for i in nums if i != " "]
print(num)
0
Muhammad Ahmad Rasheed your approach won't work for multidigit numbers in the input. Try "12 34" as an input.
Also it doesn't work correctly if the numbers are on separate lines in the input.
0
Muhammad Ahmad Rasheed what about numbers on separate lines?
0
Just put it in one line as i mentioned before
0
Muhammad Ahmad Rasheed You mean, just change the task requirements, if one can't solve it? :)