+ 6
hello can someone please explain this code for me ! thank you 🤗
def f(r) : j =range(r) e=eval("*".join([str(i+2)for i in j])) return e print(f(3))
11 ответов
+ 16
The last line has an error, too many parentheses ;)
Basically what the code does is it takes an input of 3 and:
- builds a range of 0, 1, 2
- iterates through it and builds on-the-fly a list of 0+2, 1+2, 2+2 (so 2, 3, 4)
- the str() method converts those numbers into strings and join() makes them glued together with an asterisk sign between the numbers (2*3*4)
- finally eval() evaluates the expression (2*3*4=24)
- the result is printed to the screen
+ 7
thank you so much 😃Kuba Siekierzyński
+ 7
no one The problem is with the line 2, not 3. You have to close the parenthesis. Or as a matter of fact, dispose of str() altogether. Input() already returns a string ;)
+ 6
Got it 😃 thank youuu 💛
+ 6
hh I do need some coffee 😅 thank youuu sir 💛❤
+ 5
mrr Kuba Siekierzyński can you please figure out with me whats wrong with line 3 !! its not an invalid syntax tho
msg=str(input("saisir votre message:"))
cle=str((input("saisir votre cle:"))
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
res=''
i=0
for char in msg:
begin=LETTERS.find(cle[i])
pos=LETTERS.find(char)
indice=pos+begin
if indice>25:
indice-=26
res+=LETTERS[indice]
i+=1
if i>=len(cle):
i=0
print(res)
+ 4
The loop starts with i == 1.
At first go it prints i+1, so 2.
Then i itself is multiplied by 2 and is now 2.
The loop goes off again and prints i+1. Since i is now equal to 2, i+1 is 3 and this one is printed. Meanwhile i is again multiplied by 2 and is now equal to 4. The loop's next cycle prints 4+1, so 5 and multiplies i by 2 again (i is now equal to 8. The last cycle prints out 8+1, so 9 and multiplies i by 2 again.
Since i is now 16, so greater than 10, the loop ends.
in fact, it's easier to think of this as a cycle similar to 1, 2, 4, 8, etc. BUT +1 :)
+ 3
mr Kuba Siekierzyński would u please explain this one too ! didn't understand the principe !
i=1
while i<=10:
print(i+1)
i*=2
>>>2359
and really thanks a lot in advance 💛💚
0
hallow guy
0
yes get me
0
molly
mr Kuba Siekierzyński would u please explain this one too ! didn't understand the principe !
i=1
while i<=10:
print(i+1)
i*=2
>>>2359
In first execution of while loop. It's true with i=0, then print i+1, i.e. equal to 2. Here print function just print without moving cursor to next line. Before completing first loop 'i' has been modified by i*=2 (i=i*2). so finally after completing first loop output (print) is 2 and i is 2.
It'll iterate similarly in the next loops until the value of i will satisfy the while loop condition i<=10
In 2nd loop
i=2, while condition=true, output=3 (on the same line), modified i=4
In 3nd loop
i=4, while condition=true, output=5 (on the same line), modified i=8
In 4nd loop
i=8, while condition=true, output=9 (on the same line), modified i=16
In 5nd loop
i=16, while condition=false, loop will break and execute the next consecutive statements. output=nothing