I am doing a program that changes a number in base 10 to base 7, so i did this :
num = int(raw_input(\"\"))
mod = int(0)
list = []
while num> 0:
mod =
You can use join with list comprehension:
>>> l=range(5)
>>> print l
[0, 1, 2, 3, 4]
>>> ''.join(str(i) for i in l)
'01234'
Also, don't use list
as a variable name since it is a built-in function.
Doing the following worked for me in Python3
print(*list,sep='')
In python 3 you can do like this :
print(*range(1,int(input())+1), sep='')
Your output will be like this if input = 4 :
1234
Take a look at sys.stdout
. It's a file object, wrapping standard output. As every file it has write
method, which takes string, and puts it directly to STDOUT. It also doesn't alter nor add any characters on it's own, so it's handy when you need to fully control your output.
>>> import sys
>>> for n in range(8):
... sys.stdout.write(str(n))
01234567>>>
Note two things
Also, it's handy to know that the construct you used:
for i in range (0,len(list)):
print list[i],
is equivalent to (frankly a bit more efficient):
for i in list:
print i,
s = "jay"
list = [ i for i in s ]
It you print list
you will get:
['j','a','y']
new_s = "".join(list)
If you print new_s
:
"jay"
Use list_comprehension.
num= int(raw_input(""))
mod=int(0)
list =[]
while num> 0:
mod=num%7
num=num/7
list.append(mod)
list.reverse()
print ''.join([str(list[i]) for i in range (0,len(list))])