Python get for loop result into an array variable [closed] - python

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 3 years ago.
Improve this question
code = []
def getCode():
for data in range(59):
code = []
min = 9900
max = 9999
code1 = randint(min, max)
code2 = randint(min, max)
code = str(code1) + '/' + str(code2)
# print(code)
return code
print(getCode())
dat2 = pd.DataFrame({'code': [getCode()]})
Hi, I'm trying to get a list of the number from the for loop. example result should be [[9900/9910],[9910/9920],.....]. However the code above only return me 9900/9910 even if I declare the array variable.

You need to append to code each time through the loop, not assign to it. You shouldn't reinitialize it in the loop, and the return statement should be after the loop.
And if you want a 2-dimensional list, you need to wrap the concatenations in another list.
However, the loop can be replaced completely with a list comprehension.
def getCode():
min = 9900
max = 9999
return [[str(randint(min, max)) + '/' + str(randint(min, max))] for _ in range(59)]

Related

Sum of their indices [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 4 months ago.
Improve this question
I'm trying to write a program that has a function that takes in a string and prints the number of capital letters in the first line, then prints the sum of their indices in the second line.
Here is what I came up with but I am getting errors. Anybody knows what I can fix on this code to make it run?
import sys
def string(s):
a={"UPPER":0}
for b in s:
if b.isupper():
a["UPPER"]+=1
print ("No. of Upper case characters : ", a["UPPER"])
ind = [idx for idx in range(len(val)) if val[idx].isupper()]
Sum=sum(ind)
print(Sum)
val = input("")
string(sys.argv[1])
The issue with your code is val is declared outside the scope of function.
You can rewrite your function like this.
def string(s):
ind = [idx for idx, i in enumerate(s) if i.isupper()]
print(f"Sum of index of upper case character : {sum(ind)}")
print(f"No. of Upper case characters : {len(ind)}")
Execution:
In [1]: string('Hello World')
Sum of index of upper case character : 6
No. of Upper case characters : 2

How should I write a recursive function that returns multiple values? [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 2 years ago.
Improve this question
I want the output to be a tuple including the sum the the product.
For example the list [1,2,3,4] should output (10,24). I can get the sum and product individually but cannot get both at the same time. Here's what I have so far:
def sum_product(aList):
if len(aList) == 1:
return aList[0]
result = sum_product(aList[1:])
return (result + aList[0], result*aList[0])
sum_product([1,2,3,4])
Help is greatly appreciated
Your mistake was that you return different types. In the end of recursion you return int, but in general return a tuple. I changed your code, so now it works.
def sum_product(aList):
if len(aList) == 1:
return aList[0], aList[0] #list[0] for sum and list[0] for product
result = sum_product(aList[1:])
return (result[0] + aList[0], result[1] * aList[0])

I am Wrote this python code but every time it's give me wrong answer [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 2 years ago.
Improve this question
I have wrote this Code for calculates the product of the first natural numbers, but it showing answer 1 every time. I don't where i did mistake?? Can you please help me find out my mistake in this code..
num = 10
i = 0
prod = 1
while i<=num:
i = i+1
prod*prod*i
print(prod)
The problem seems to be on the line prod*prod*i. The product needs to be accumulated and for this it should be exchanged for prod*=i.
The new snippet is:
num = 10
i = 0
prod = 1
while i<=num:
print(i)
i = i+1
prod*=i
print(prod)
Instead of prod*prod*i write prod=prod*i
Here we first take the input of the number of terms.Then we iterate the for loop and multiply the value of x with the initial value(=1).Then we assign the new value to p.
n=int(input('Terms: ')) #specifing the limit
p=1
for x in range(1,n+1):
p=p*x
print(p)

Python: Delete a char by char from a string [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 5 years ago.
Improve this question
I am trying to delete character by character from a string (each time a single character to see what the string is going to look like)
var = 'string'
var1 = ''
cor = []
for i in range(0, len(var)):
varl = var[:i] + var[(i+1):]
cor.append(varl)
print (cor)
This is what am getting
['t', 'sr', 'sti', 'strn', 'strig', 'tring', 'sring', 'sting', 'strng', 'strig', 'strin']
I don't know why am getting the first 5 elements in the list, they should not exist.
Does anyone know how to fix this, Thanks.
There isn't really any reason for this not to work. However, using list comprehension instead, seeing as it solved your problem:
var = 'string'
cor = [var[:i] + var[i+1:] for i in range(len(var))]
print (cor)
Returns
['tring', 'sring', 'sting', 'strng', 'strig', 'strin']
The main reason your output seems strange is the loop which should add len(var) variables max.
for i in range(0, len(var)):
In your variable definitions, you have the second variable defined as var1 (i.e. var'one'), and in your for loop, you have varl (i.e. var'el').
Change varls in your loop to var1 and you'll have what you expect.

Why can't i use a while loop for writing something in a txt file [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 7 years ago.
Improve this question
I have this simple while loop:
f = open('test.txt','a')
i = 0
while i <= 5:
f.write('test')
i = i + 1
f.close()
Every time i execute this code my python crashes. Is there a reason why that occurs?
You are incrementing the i variable outside of the loop. This code is never reached, since your loop never exits. It is an infinite loop. Place i = i + 1 within the loop:
f = open('test.txt','a')
i = 0
while i <= 5:
f.write('test')
i = i + 1
f.close()
Now i will be increased in each iteration, while i <= 5 holds. When i becomes 6, the loop exits and the file is closed.

Categories