July 11, 2022
Циклы и диапазоны
Диапазоны от и до
range(старт, стоп, шаг)
Вызывая range() с тремя аргументами, вы можете выбрать не только то, где ряд чисел начнется и остановится, но также то, на сколько велика будет разница между одним числом и следующим. Если вы не задаете этот «шаг», то range() автоматически будет вести себя так, как если бы шаг был бы равен 1.
Обратите внимание: шаг может быть положительным, или отрицательным числом, но он не может равняться нулю:
Примеры цикла в одну строку (Comprehensive lists):
sp = [7, 8, 9, 9] sp1 = [x**2 for x in sp] print(sp1)
a = str(input('Input a number\n'))
lst = [int(i) for i in a]
s = sum(lst)
print(s)Вложенные циклы одной строкой:
list = [['1', '345', 'htyuj',], ['Andrei', 'Pasha', 'Olya'],
['Hello', 'hi', ], ['Dad','Son', 'Spouse']]
# list_output = []
# for element in list:
# for i in element:
# list_output.append(i)
## new_string = ', '.join(list_output)
# print(new_string)
[[print(i) for i in element] for element in list]
#Вывод будет в столбик значений вложенного листаЕще пример:
greeting = 'Hello' letter_l = [] [letter_l.append(l) for l in greeting] print(letter_l) Второй вариант: letter_l = [letter for letter in greeting]
Пример с условием if
nl = [-6, 5, 65, -65, -2, 4, 9] pnl = [number for number in nl if number<0] print(pnl)
C оператором <else> конструкция с if переносится вперед
nl = [-6, 5, 65, -65, -2, 4, 9]
[print('+') if i>0 else print('-')for i in nl]
или
new_list = ['+' if i>o else '-' for i in nl]Вариант замены ветвления if:
def bmi(weight, height):
b = weight / height ** 2
return ['Underweight', 'Normal', 'Overweight', 'Obese'][(b > 30) + (b > 25) + (b > 18.5)]Примеры задач
FizzBuzz is a famous code challenge used in interviews to test basic programming skills. It's time to write your own implementation. Print numbers from 1 to 100 inclusively following these instructions: if a number is multiple of 3, print"Fizz"instead of this number if a number is multiple of 5, print"Buzz"instead of this number for numbers that are multiples of both 3 and 5, print"FizzBuzz"print the rest of the numbers unchanged. Output each value on a separate line.
for i in range(1, 101):
if i % 5 ==0 and i % 3 == 0:
print('FizzBuzz')
elif i % 3 == 0:
print('Fizz')
elif i % 5 == 0:
print('Buzz')
else:
print(i)for i in range(1, 101):
output = ""
if i % 3 == 0:
output += "Fizz"
if i % 5 == 0:
output += "Buzz"
print(output or i)for i in range(1, 101):
print("Fizz" * (i % 3 == 0) + "Buzz" * (i % 5 == 0) or str(i))
for number in range(1, 101):
res = ""
if number % 3 == 0:
res = "Fizz"
if number % 5 == 0:
res += "Buzz"
print(res or number)
for num in range(1, 101):
print(
'FizzBuzz' if num % 3 == 0 and num % 5 == 0 else
'Fizz' if num % 3 == 0 else
'Buzz' if num % 5 == 0 else
num
)for i in range(1, 101):
fizz = 'Fizz' if i % 3 == 0 else ''
buzz = 'Buzz' if i % 5 == 0 else ''
print(f'{fizz}{buzz}' or i)for n in range(1, 101):
print('Fizz' * (not n % 3) + 'Buzz' * (not n % 5) or n)# Explanation: # # - Expressions like (not n % 3) will return True or False # - Expressions like `'Fizz' * True` is the same as `'Fizz' * 1 ` # - Expressions like `'Fizz' * False` is the same as `'Fizz' * 0` # - Multiplying a string by 1 returns the same string # - Multiplying a string by zero returns empty string
July 11, 2022, 20:15
0 views
0 reposts