Как заполнить список в питоне с клавиатуры
Перейти к содержимому

Как заполнить список в питоне с клавиатуры

  • автор:

Массивы

Большинство программ работает не с отдельными переменными, а с набором переменных. Например, программа может обрабатывать информацию об учащихся класса, считывая список учащихся с клавиатуры или из файла, при этом изменение количества учащихся в классе не должно требовать модификации исходного кода программы.

Раньше мы сталкивались с задачей обработки элементов последовательности, например, вычисляя наибольший элемент последовательности. Но при этом мы не сохраняли всю последовательность в памяти компьютера, однако, во многих задачах нужно именно сохранять всю последовательность, например, если бы нам требовалось вывести все элементы последовательности в возрастающем порядке (“отсортировать последовательность”).

Для хранения таких данных можно использовать структуру данных, называемую в Питоне список (в большинстве же языков программирования используется другой термин “массив”). Список представляет собой последовательность элементов, пронумерованных от 0, как символы в строке. Список можно задать перечислением элементов списка в квадратных скобках, например, список можно задать так:

Primes = [2, 3, 5, 7, 11, 13]
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']

В списке Primes — 6 элементов, а именно, Primes[0] == 2, Primes[1] == 3, Primes[2] == 5, Primes[3] == 7, Primes[4] == 11, Primes[5] == 13. Список Rainbow состоит из 7 элементов, каждый из которых является строкой.

Также как и символы строки, элементы списка можно индексировать отрицательными числами с конца, например, Primes[-1] == 13, Primes[-6] == 2.

Длину списка, то есть количество элементов в нем, можно узнать при помощи функции len, например, len(A) == 6.

Рассмотрим несколько способов создания и считывания списков. Прежде всего можно создать пустой список (не содержащий элементов, длины 0), в конец списка можно добавлять элементы при помощи метода append. Например, если программа получает на вход количество элементов в списке n, а потом n элементов списка по одному в отдельной строке, то организовать считывание списка можно так:

A = []
for i in range(int(input()):
A.append(int(input())

В этом примере создается пустой список, далее считывается количество элементов в списке, затем по одному считываются элементы списка и добавляются в его конец.

Для списков целиком определены следующие операции: конкатенация списков (добавление одного списка в конец другого) и повторение списков (умножение списка на число). Например:

A = [1, 2, 3]
B = [4, 5]
C = A + B
D = B * 3

В результате список C будет равен [1, 2, 3, 4, 5], а список D будет равен [4, 5, 4, 5, 4, 5]. Это позволяет по-другому организовать процесс считывания списков: сначала считать размер списка и создать список из нужного числа элементов, затем организовать цикл по переменной i начиная с числа 0 и внутри цикла считывается i-й элемент списка:

A = [0] * int(input())
for i in range(len(A)):
A[i] = int(input())

Вывести элементы списка A можно одной инструкцией print(A), при этом будут выведены квадратные скобки вокруг элементов списка и запятые между элементами списка. Такой вывод неудобен, чаще требуется просто вывести все элементы списка в одну строку или по одному элементу в строке. Приведем два примера, также отличающиеся организацией цикла:

for i in range(len(A)): 
print(A[i])

Здесь в цикле меняется индекс элемента i, затем выводится элемент списка с индексом i.

for elem in A: 
print(elem, end = ' ')

В этом примере элементы списка выводятся в одну строку, разделенные пробелом, при этом в цикле меняется не индекс элемента списка, а само значение переменной (например, в цикле for elem in [‘red’, ‘green’, ‘blue’] переменная elem будет последовательно принимать значения ‘red’, ‘green’, ‘blue’.

Python Урок 4. Списки или массивы в Питоне

егэ разбор егэ разбор pascal уроки c уроки python уроки c++ уроки vb уроки lazarus уроки php уроки html уроки css уроки javascript уроки jquery и ajax уроки prolog уроки flash уроки

На уроке объясняется, как в языке python представлены списки (вместо массивов); объясняется про создание списков на Python.

Часть I: Коллекции: Списки / массивы

Списки (массивы) в Питоне, как и в других языках программирования, — это определенное количество элементов, которые имеют общее имя, и каждый элемент имеет свой индекс — порядковый номер. В отличие от массивов в других языках, у списков нет никаких ограничений на тип переменных, поэтому в них могут храниться объекты разного типа.

L - список целых чисел: L = [25, 755, -40, 57, -41]

В языке Python отсутствует такая структура, как «массив». Для работы с массивами используются списки.

Списки являются упорядоченными последовательностями, которые состоят из различных объектов (значений, данных), заключающихся в квадратные скобки [ ] и отделяющиеся друг от друга с помощью запятой.

В строку нельзя добавить новый символ или удалить существующий, не создав при этом новой строки.

Пример:
Так, например, в Питоне нельзя переприсваивать значение для отдельных символов строки.
Программа выдаст ошибку!

s="aaa"; s[1]="b"; print(s1)

Изменять строку можно только, работая с ней, как с объектом (метод replace , например):

s1="breKeKeKeKs"; s1=s1.replace('Ke','XoXo',2) s1 # breXoXoXoXoKeKs

s1=»breKeKeKeKs»; s1=s1.replace(‘Ke’,’XoXo’,2) s1 # breXoXoXoXoKeKs

Что касается списков, то при выполнении операций другие списки могут не создаваться, при этом изменяется непосредственно оригинал.
Из списков можно удалять и добавлять новые элементы.

Создание списков на Python

    Создать список можно несколькими способами. Рассмотрим их.
1. Получение списка через присваивание конкретных значений
s = [] # Пустой список

s = [] # Пустой список

l = [25, 755, -40, 57, -41] # список целых чисел l = [1.13, 5.34, 12.63, 4.6, 34.0, 12.8] # список из дробных чисел l = ["Sveta", "Sergei", "Ivan", "Dasha"] # список из строк l = ["Москва", "Иванов", 12, 124] # смешанный список l = [[0, 0, 0], [1, 0, 1], [1, 1, 0]] # список, состоящий из списков l = ['s', 'p', ['isok'], 2] # список из значений и списка

l = [25, 755, -40, 57, -41] # список целых чисел l = [1.13, 5.34, 12.63, 4.6, 34.0, 12.8] # список из дробных чисел l = [«Sveta», «Sergei», «Ivan», «Dasha»] # список из строк l = [«Москва», «Иванов», 12, 124] # смешанный список l = [[0, 0, 0], [1, 0, 1], [1, 1, 0]] # список, состоящий из списков l = [‘s’, ‘p’, [‘isok’], 2] # список из значений и списка

2. Списки при помощи функции List()

Получаем список при помощи функции List()

empty_list = list() # пустой список l = list ('spisok') # 'spisok' - строка print(l) #['s', 'p', 'i', 's', 'o', 'k'] - результат - список

empty_list = list() # пустой список l = list (‘spisok’) # ‘spisok’ — строка print(l) #[‘s’, ‘p’, ‘i’, ‘s’, ‘o’, ‘k’] — результат — список

3. Создание списка при помощи функции Split()
  • Используя функцию split в Питон можно получить из строки список. Рассмотрим пример:
stroka ="Hello, world" # stroka - строка lst=stroka.split(",") # lst - список lst # ['Hello', ' world']

stroka =»Hello, world» # stroka — строка lst=stroka.split(«,») # lst — список lst # [‘Hello’, ‘ world’]

4. Генераторы списков
  • В python создать список можно также при помощи генераторов, — это довольно-таки новый метод:
  • Пример 1:

Сложение одинаковых списков заменяется умножением:

# список из 10 элементов, заполненный единицами l = [1]*10 # список l = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# список из 10 элементов, заполненный единицами l = [1]*10 # список l = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

l = [i for i in range(10)] # список l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l = [i for i in range(10)] # список l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l = [i*2 for i in range(10)] # список l = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

l = [i*2 for i in range(10)] # список l = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

l = [i*2 for i in range(10) if i % 2 == 0] # список l = [0, 4, 8, 12, 16]

l = [i*2 for i in range(10) if i % 2 == 0] # список l = [0, 4, 8, 12, 16]

c = [c * 3 for c in 'list'] print (c) # ['lll', 'iii', 'sss', 'ttt']

c = [c * 3 for c in ‘list’] print (c) # [‘lll’, ‘iii’, ‘sss’, ‘ttt’]

Пример:
Заполнить список квадратами чисел от 0 до 9, используя генератор списка.

l = [i*i for i in range(10)]

l = [i*i for i in range(10)]

l = [(i+1)+i for i in range(10)] print(l) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

l = [(i+1)+i for i in range(10)] print(l) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

from random import randint l = [randint(10,80) for x in range(10)] # 10 чисел, сгенерированных случайным образом в диапазоне (10,80)

from random import randint l = [randint(10,80) for x in range(10)] # 10 чисел, сгенерированных случайным образом в диапазоне (10,80)

Задание Python 4_1:
Создайте список целых чисел от -20 до 30 (генерация).

[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Задание Python 4_2:
Создайте список целых чисел от -10 до 10 с шагом 2 (генерация list).

[-10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10]

Задание Python 4_3:
Создайте список из 20 пятерок (генерация).

[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

Задание Python 4_4:
Создайте список из сумм троек чисел от 0 до 10, используя генератор списка (0 + 1 + 2, 1 + 2 + 3, …).

[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33]

Задание Python 4_5 (сложное):
Заполните массив элементами арифметической прогрессии. Её первый элемент, разность и количество элементов нужно ввести с клавиатуры.

* Формула для получения n-го члена прогрессии: an = a1 + (n-1) * d

Простейшие операции над списками

  • Списки можно складывать (конкатенировать) с помощью знака «+»:
l = [1, 3] + [4, 23] + [5] # Результат: # l = [1, 3, 4, 23, 5]

l = [1, 3] + [4, 23] + [5] # Результат: # l = [1, 3, 4, 23, 5]

[33, -12, 'may'] + [21, 48.5, 33] # [33, -12, 'may', 21, 48.5, 33]

[33, -12, ‘may’] + [21, 48.5, 33] # [33, -12, ‘may’, 21, 48.5, 33]

a=[33, -12, 'may'] b=[21, 48.5, 33] print(a+b)# [33, -12, 'may', 21, 48.5, 33]

a=[33, -12, ‘may’] b=[21, 48.5, 33] print(a+b)# [33, -12, ‘may’, 21, 48.5, 33]

[[0,0],[0,1],[1,1]] * 2 # [[0, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 1]]

[[0,0],[0,1],[1,1]] * 2 # [[0, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 1]]

Пример:
Для списков операция переприсваивания значения отдельного элемента списка разрешена!:

a=[3, 2, 1] a[1]=0; print(a) # [3, 0, 1]

a=[3, 2, 1] a[1]=0; print(a) # [3, 0, 1]

Задание 4_6:
В строке записана сумма натуральных чисел: ‘1+25+3’. Вычислите это выражение. Работать со строкой, как со списком.

s=input('введите строку') l=list(str(s));

s=input(‘введите строку’) l=list(str(s));

Как узнать длину списка?

В питоне не нужно явно указывать размер списка или вручную выделять на него память. Длину списка можно узнать с помощью встроенной функции len :

names = ['Ivan', 'Marie', 'Peter', 'Max'] print (len(names)) # 4

names = [‘Ivan’, ‘Marie’, ‘Peter’, ‘Max’] print (len(names)) # 4

Ввод списка (массива) в языке Питон

L=[] L = [ int(input()) for i in range(5) ] # при вводе 1 2 3 4 5 print (L) # вывод: 1 2 3 4 5

L=[] L = [ int(input()) for i in range(5) ] # при вводе 1 2 3 4 5 print (L) # вывод: 1 2 3 4 5

Функция int здесь используется для того, чтобы строка, введенная пользователем, преобразовывалась в целые числа.

# вывод целого списка (массива) print (L) # поэлементный вывод списка (массива) for i in range(5): print ( L[i], end = " " )

# вывод целого списка (массива) print (L) # поэлементный вывод списка (массива) for i in range(5): print ( L[i], end = » » )

Задание Python 4_7:
Необходимо задать список (массив) из шести элементов; заполнить его вводимыми значениями и вывести элементы на экран. Использовать два цикла: первый — для ввода элементов, второй — для вывода.

Замечание: Для вывода через «,» используйте следующий синтаксис:

print ( L[i], end = ", " )
введите элементы массива: 3.0 0.8 0.56 4.3 23.8 0.7 Массив = 3, 0.8, 0.56, 4.3, 23.8, 0.7

Задание Python 4_8:
Заполните список случайными числами в диапазоне 20..100 и подсчитайте отдельно число чётных и нечётных элементов. Использовать цикл.

Задание Python 4_9: Найдите минимальный элемент списка. Выведите элемент и его индекс. Список из 10 элементов инициализируйте случайными числами. Для перебора элементов списка использовать цикл.

9 5 4 22 23 7 3 16 16 8 Минимальный элемент списка L[7]=3

9 5 4 22 23 7 3 16 16 8 Минимальный элемент списка L[7]=3

Часть II: Другие операции над списками при помощи функций и методов

a=[1,7,3,88,33] a.sort() #[1,3,7,33,88] - сортировка a.reverse() #[88,33,7,3,1] - обратная сортировка a.index(7) #2 - индекс элемента a.clear() # - очистка списка len(a) # - длина списка sum(a) # - суммирование элементов

a=[1,7,3,88,33] a.sort() #[1,3,7,33,88] — сортировка a.reverse() #[88,33,7,3,1] — обратная сортировка a.index(7) #2 — индекс элемента a.clear() # — очистка списка len(a) # — длина списка sum(a) # — суммирование элементов

lst=['11','22','33'] lst="-".join(lst)# '11-22-33'
str="1-2-3-4" s1=str.split("-") # ['1','2','3','4']

Задание 4_10:
Дан список из 5 различных элементов. Используя функции (не использовать цикл), необходимо найти и вывести:

  • минимальный и максимальный элементы списка;
  • сумму и среднее арифметическое;
  • второй минимальный элемент (второй по минимальности).

Начало программы:

lst=[4,5,2,3,4]

Добавление и удаление элементов списка

  • Добавление элемента, append() :
>>> a=[] >>> a.append('444') # ['444']

Пример:
Поиск нечетных элементов в списке mas и копирование их в список B.

mas = [1,5,2,7,6,9] B = [] for x in mas: if x % 2 != 0: B.append(x) # [1, 5, 7, 9]

mas = [1,5,2,7,6,9] B = [] for x in mas: if x % 2 != 0: B.append(x) # [1, 5, 7, 9]

mas = [1,5,2,7,6,9] B = [x for x in mas if x % 2 != 0] # [1, 5, 7, 9]

mas = [1,5,2,7,6,9] B = [x for x in mas if x % 2 != 0] # [1, 5, 7, 9]

names = ['Ivan', 'Marie', 'Peter', 'Max'] names.extend(['Kat', 'Mike']) print(names) #['Ivan', 'Marie', 'Peter', 'Max', 'Kat', 'Mike']

names = [‘Ivan’, ‘Marie’, ‘Peter’, ‘Max’] names.extend([‘Kat’, ‘Mike’]) print(names) #[‘Ivan’, ‘Marie’, ‘Peter’, ‘Max’, ‘Kat’, ‘Mike’]

names += ['Nick'] print(names) #['Ivan', 'Marie', 'Peter', 'Max', 'Kat', 'Mike', 'Nick']

names += [‘Nick’] print(names) #[‘Ivan’, ‘Marie’, ‘Peter’, ‘Max’, ‘Kat’, ‘Mike’, ‘Nick’]

a=['asd','444','555','77'] a.remove('444') # ['asd', '555', '77']

a=[‘asd’,’444′,’555′,’77’] a.remove(‘444’) # [‘asd’, ‘555’, ’77’]

a=['asd','444','555','77'] del a[0] # ['444', '555', '77']

a=[‘asd’,’444′,’555′,’77’] del a[0] # [‘444’, ‘555’, ’77’]

При копировании списков, т.е. присваивании одного списка другому, изменение первого списка влечет за собой изменение второго списка. Так как эти объекты связаны одной областью памяти (ссылка на список).

mas1 =[1, 2, 3] mas2 = mas1 # создается ссылка на список mas1[0] = 4 print(mas2) #[4, 2, 3]

mas1 =[1, 2, 3] mas2 = mas1 # создается ссылка на список mas1[0] = 4 print(mas2) #[4, 2, 3]

Чтобы создать не ссылку на список, а копию списка можно использовать либо срез либо функцию copy.

mas2 = mas1[:] # используем срез

mas2 = mas1[:] # используем срез

import copy mas1 =[1,2,3] mas2 = copy.copy(mas1)

import copy mas1 =[1,2,3] mas2 = copy.copy(mas1)

Задание 4_11: Проверить, является ли заданное слово палиндромом.

Примечание:

  • Пример палиндрома: казак, ABBA
  • Использовать функции.
  • Поскольку при присваивании одного списка другому, изменение первого ведет к аналогичному изменению второго списка, то необходимо использовать копию ( copy ).

Начало программы:

import copy stroka=input('введите слово') lst=list (stroka) # конвертируем строку в список

import copy stroka=input(‘введите слово’) lst=list (stroka) # конвертируем строку в список

Ключевое слово «in»

Проверить, содержит ли список некоторый объект, можно с помощью ключевого слова « in «:

names = ['Ivan', 'Marie', 'Peter', 'Inna'] print('Marie' in names) # true

names = [‘Ivan’, ‘Marie’, ‘Peter’, ‘Inna’] print(‘Marie’ in names) # true

Генерация случайных чисел при работе со списками

Вспомним, как работать с модулем random .

Встроенный модуль Питона random позволяет генерировать псевдослучайные числа.

Модуль random включает в себя функцию random, которая возвращает действительное число в диапазоне от 0.0 до 1.0. Каждый раз при вызове функции возвращается число из длинного ряда.

Пример:

import random for i in range(10): x = random.random() print (x) # 0.5185207383774904 0.78283351055836 0.23601341583293534 . 

import random for i in range(10): x = random.random() print (x) # 0.5185207383774904 0.78283351055836 0.23601341583293534 .

Чтобы получить случайное число между 0.0 и верхней границей high, просто умножьте x на high.

Например, от 0.0 до 15.0:

import random for i in range(10): x = random.random() print (x * 15) # 11.075319687990554 7.152253113207329 . 

import random for i in range(10): x = random.random() print (x * 15) # 11.075319687990554 7.152253113207329 .

Для того, чтобы получить псевдослучайное целое число:

import random random.randint(начало>,конец>)

import random random.randint(,)

Для того, чтобы получить псевдослучайное вещественное число:

import random random.uniform(начало>,конец>)

import random random.uniform(,)

from random import randint l = [randint(10,80) for x in range(10)]

from random import randint l = [randint(10,80) for x in range(10)]

Задание Python 4_12:
Найдите в массиве все простые числа и скопируйте их в новый массив.

Задание Python 4_13:
Решить задачу поиска среднего значения в списке из N элементов (вводимых в виде строк). Использовать метод добавления элементов списка и суммирования элементов

Цикл for при работе со списками

mylist=[1,2,3,4,5] for item in mylist: item = 0 # mylist не меняется! print(mylist) # [1, 2, 3, 4, 5] n=5 for i in range(n): mylist[i] = 0 # mylist меняется print(mylist) # [0, 0, 0, 0, 0]

mylist=[1,2,3,4,5] for item in mylist: item = 0 # mylist не меняется! print(mylist) # [1, 2, 3, 4, 5] n=5 for i in range(n): mylist[i] = 0 # mylist меняется print(mylist) # [0, 0, 0, 0, 0]

В списке чисел проверить, все ли элементы являются уникальными, т.е. каждое число встречается только один раз

Комментарии к программе:

Решать данную задачу на языке Python мы будем «классическим» вариантом — брать по очереди элементы списка и сравнивать каждый элемент со стоящими за ним. При первом же совпадении элементов делается вывод, что в списке есть одинаковые элементы, и работа программы завершается.

Для выхода из цикла будем использовать метод quit()

import random m = 6 mass=[] k=0 j=0 for i in range(m): mass.append(random.randint(-10,10)) print(mass[i]) # -10 0 -8 0 -10 1 for i in mass: k=k+1 for j in range(k,m): # j = 0 -8 0 -10 -> quit if (i==mass[j]): # -10==0 -10==-8 -10==0 -10==-10 -> quit print('yes') quit()

import random m = 6 mass=[] k=0 j=0 for i in range(m): mass.append(random.randint(-10,10)) print(mass[i]) # -10 0 -8 0 -10 1 for i in mass: k=k+1 for j in range(k,m): # j = 0 -8 0 -10 -> quit if (i==mass[j]): # -10==0 -10==-8 -10==0 -10==-10 -> quit print(‘yes’) quit()

задание со списком в Питоне

Задание Python 4_14: Определить индексы элементов массива (списка), значения которых принадлежат заданному диапазону (т.е. не меньше заданного минимума и не больше заданного максимума)

* в результате получили индексы элементов, значения которых находятся в диапазоне [5,15]

Алгоритм:

  1. Заполнить список (массив) случайными числами
  2. Запросить для ввода минимум и максимум диапазона
  3. Найти индексы элементов, значения которых входят в диапазон. Добавлять найденные индексы к новому списку
  4. Вывести общее число найденных индексов (функция len()) и отдельно все индексы

Задание Python 4_15: Дополнить предыдущую программу следующим:

После того, как элемент с подходящим значением добавлен в новый список – удалять его из исходного списка

* Использовать цикл while , функцию len()

Ввод и вывод данных

Мы уже встречались с функцией print() . Она отвечает за вывод данных, по-умолчанию на экран. Если код содержится в файле, то без нее не обойтись. В интерактивном режиме в ряде случаев можно обойтись без нее.

Ввод данных в программу и их вывод важны в программировании. Без ввода программы делали бы одно и то же, исключая случаи, когда в них самих генерируются случайные значения. Вывод позволяет увидеть, использовать, передать дальше результат работы программы.

Обычно требуется, чтобы программа обрабатывала какой-то диапазон различных входных данных, которые поступают в нее из внешних источников. В качестве последних могут выступать файлы, клавиатура, сеть, выходные данные из другой программы. В свою очередь вывод данных, например, возможен в файл, по сети, в базу данных, на принтер. Однако нередко информацию просто выводят на экран монитора.

Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.

Вывод данных. Функция print()

Что такое функция в программировании, узнаем позже. Пока будем считать, что print() – это такая команда языка Python, которая выводит то, что в ее скобках на экран.

>>> print(1032) 1032 >>> print(2.34) 2.34 >>> print("Hello") Hello

В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:

>>> print("a:", 1) a: 1 >>> one = 1 >>> two = 2 >>> three = 3 >>> print(one, two, three) 1 2 3

Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.

Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:

>>> print("hello" + " " + "world") hello world >>> print(10 - 2.5/2) 8.75

В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:

>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") Mon-Tue-Wed-Thu-Fri-Sat-Sun >>> print(1, 2, 3, sep="//") 1//2//3

Параметр end позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку:

>>> print(10, end="") 10>>>

Обычно end используется не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается символом ‘\n’. Если присвоить это значение параметру end , то никаких изменений в работе функции print вы не увидите, так как это значение и так присвоено по-умолчанию:

>>> print(10, end='\n') 10 >>>

Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:

>>> print(10, end='\n\n') 10 >>>

В функцию print нередко передаются так называемые форматированные строки, хотя по смыслу их правильнее называть строки-шаблоны. Никакого отношения к самому print они не имеют. Когда такая строка находится в скобках print() , интерпретатор сначала согласно заданному в ней формату преобразует ее к обычной строке, после чего передает результат в print() .

Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:

>>> pupil = "Ben" >>> old = 16 >>> grade = 9.2 >>> print("It's %s, %d. Level: %f" % (pupil, old, grade)) It's Ben, 16. Level: 9.200000

Здесь вместо трех комбинаций символов %s , %d , %f подставляются значения переменных pupil , old , grade . Буквы s , d , f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s .

Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:

>>> print("It's %s, %d. Level: %.1f" % (pupil, old, grade)) It's Ben, 16. Level: 9.2

Теперь посмотрим на метод format() :

>>> print("This is a . It's .".format("ball", "red")) This is a ball. It's red. >>> >>> print("This is a . It's .".format("white", "cat")) This is a cat. It's white. >>> >>> print("This is a . It's .".format("a", "number", 1)) This is a 1. It's a number.

В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format() . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format() , на место с номером 1 – второй и т. д.

На самом деле возможности метода format существенно шире, и для их изучения понадобился бы отдельный урок. Нам пока будет достаточно этого.

В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f . В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.

>>> a = 10 >>> b = 1.33 >>> c = 'Box' >>> print(f'qty - , goods - ') qty - 10, goods - Box >>> print(f'price - ') price - 1.5

В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.

Ввод данных. Функция input()

За ввод в программу данных с клавиатуры в Python отвечает функция input . Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter , функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.

Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter . Если вы что-то ввели, это сразу же отобразиться на экране:

>>> input() Yes! 'Yes!'

Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:

>>> answer = input() No, it is not.

В данном случае строка сохраняется в переменной answer , и при желании мы можем вывести ее значение на экран:

>>> answer 'No, it is not.'

При использовании функции print() кавычки в выводе опускаются:

>>> print(answer) No, it is not.

Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:

name_user = input() city_user = input() print(f'Вас зовут . Ваш город ')

Использование функции input()

При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным name_user и city_user . После этого значения этих переменных выводятся на экран с помощью форматированного вывода.

Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить человека в замешательство, для функции input предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так:

name_user = input('Ваше имя: ') city_user = input('Ваш город: ') print(f'Вас зовут . Ваш город ')

Функция input() с аргументом-приглашением

Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.

Преобразование ввода к числу

В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.

Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :

qty = int(input("Сколько апельсинов? ")) price = float(input("Цена одного? ")) summa = qty * price print("Заплатите", summa, "руб.")

Сначала выполняется функция input() . Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.

Практическая работа

  1. Напишите программу (файл user.py ), которая запрашивала бы у пользователя:
    — его имя (например, «What is your name?»)
    — возраст («How old are you?»)
    — место жительства («Where are you live?»)
    После этого выводила бы три строки:
    «This is имя »
    «It is возраст »
    «(S)he live in место_жительства »
    Вместо имя , возраст , место_жительства должны быть данные, введенные пользователем. Примечание: можно писать фразы на русском языке, но если вы планируете стать профессиональным программистом, привыкайте к английскому.
  2. Напишите программу (файл arithmetic.py ), которая предлагала бы пользователю решить пример 4 * 100 — 54. Потом выводила бы на экран правильный ответ и ответ пользователя. Подумайте, нужно ли здесь преобразовывать строку в число.
  3. Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Как ввести список с клавиатуры?

Есть задание: 1.Нужно ввести два списка с клавиатуры 2.Нужно перемножить. Вот пример: Нужно ввести такие списки с клавиатуры:

l1 = [a, 3, 4] l2 = [d, c, 5] 

И при умножении должно выйти это

l3 = [ad, ccc, 20] 

Как перемножить их я разобрался но как ввести и числа и буквы с клавиатуры не знаю.
Отслеживать
26.2k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
задан 26 дек 2019 в 15:52
Данил Павленко Данил Павленко
19 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака

здесь не очень любят вопросы, автор которых не сделал даже простейших вещей, чтобы найти ответ на элементарный вопрос. Ввод с клавиатуры осуществляется функцией input().

26 дек 2019 в 16:09
Google -> python input list — самые первые ссылки, куча вариантов
26 дек 2019 в 16:18
там есть только ввод чисел или строк по отдельности
26 дек 2019 в 16:23

list2 = [] N = int(input(‘Введите размер первого списка с клавиатуры:’)) for x in range(N): x = input(‘Вводите данные:’) try: list1.append(int(x)) except ValueError: list1.append(x) если кому то нужно то получился такой код

26 дек 2019 в 16:36

Это вам кажется, что по отдельности. На самом деле там везде про ввод строк. Даже там, где вы думаете, что это про ввод чисел.

26 дек 2019 в 17:09

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

a = input().split() b = input().split() c = [a[i]+b[i] for i in range(min(len(a), len(b)))] print(c) 

По поводу преобразования ответ в соседнем вопросе, а тебе даже проверка на отрицательные числа не нужна.

Отслеживать
ответ дан 26 дек 2019 в 16:39
123k 24 24 золотых знака 126 126 серебряных знаков 303 303 бронзовых знака

Дак у него явно указанно, что 3 и c должно стать ccc . А у вас получается 3c . =) Либо тс, сам не понял, что написал.

26 дек 2019 в 17:01

@And, это я не понял. Поэтому довабил ссылку на ответ, где сказано как скастить список. А про то, что делать с двумя списками он в вопросе написал, что уже умеет, так что нет смысла второй раз изобретать.

26 дек 2019 в 18:11

Ну ты-же,, должен понимать, что код может быть разный, и для его «Я умею», твой код может не подойти. Он нигде не показал, как он умеет и что он там делает,.

26 дек 2019 в 18:13

@And, ну сделав [int(x) if x.isdigit() else x for x in input().split()] он получит интересующие его списки, а дальше он умеет 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *