Sum of their indices [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 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

Related

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)

Why this Syntax Error on Python 3.8 for Mac [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
Check out the screenshot and help this newb with why i'm getting this syntax error with the for loop even though im following the right syntax.
The code :
elif choice == 'AVERAGE':
import statistics
lst = []
n = int(input('Enter number of values to calculate mean of: ')
for i in range(0,n):
ele=int(input())
lst.append(ele)
The Error : Invalid Syntax for the ':' after 'range(0,n)'
You are spacing the items inside the for loop with double Tab, the indentation should be either 4 spaces or a single tab.
And you are missing a parenthesis closing in the n input line
See the modified code below.
elif choice == 'AVERAGE':
import statistics
lst = []
n = int(input('Enter number of values to calculate mean of: '))
for i in range(0,n):
ele=int(input())
lst.append(ele)

Python get for loop result into an array variable [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 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)]

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.

Python indentation issue (Error: expected an indented block) [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 have an indetntation issue with my code:
#!/usr/bin/python
import numpy as np
#Hit and mess method
A=0 #Integral left limit
B=1 #Integral right limit
C=1.0 #Maximum function value in interval [a,b]
N=100000 #Number of experiments
L=[10**x for x in range(7)] #List of powers of ten (1,10,100,...)
def F(X): #Function to integrate
return np.sqrt(1-(X**2))
for M in L:
NA=0 #Number count of hits
for J in range(M):
U=np.random.rand()
V=np.random.rand()
X=A+(B-A)*U
if F(X) > C*V:
NA=NA+1
P=NA/float(M) #Probability
I=C*(B-A)*P #Integral value
STD=np.sqrt(P*(1-P)/M)*C*(B-A)
print M,NA,P,I,STD
The error is:
File "HIT.py", line 19
U=np.random.rand()
^
IndentationError: expected an indented block
Thanks!
You are mixing tabs and spaces. Your code uses tabs in the 2 lines above U=np.random.rand(), however, indentation is provided by spaces for U=np.random.rand(). And there are many other examples of mixed spaces and tabs in your code.
For a few of the lines, the code looks like this (\t represents a tab):
for M in L:
\tNA=0 #Number count of hits
\tfor J in range(M):
U=np.random.rand()
\tV=np.random.rand()
\tX=A+(B-A)*U
You should only use spaces for indentation, if possible (it may not be possible when maintaining older code). You can read about this and other style issues in PEP 8.

Categories