Рубрики
Без рубрики

3 хитрости, которые должен знать каждый программист Python

Если вы никогда не касались Python раньше или если вы только начинаете, это пост, если для вас. Это … с меткой Python, Tuperial, Codenewbie, новичков.

Если вы никогда не касались Python раньше или если вы только начинаете, это пост, если для вас. Это то, что я просто не могу жить, не будучи программистом Python.

Не используйте Python 2. Используйте Python 3.

Здесь нет секрета. Только не используйте Python 2.

Действительно, не используйте это. Используйте Python 3.

Понятно? Используйте Python 3.

Нет Python 2. Всегда.

Итак, вы изучаете Python. Что первое, что вы узнаете?

Привет, мир , хорошо.

Но что такое второй то, что вы изучаете? Для меня это всегда суммирует два целых числа. Как вы это делаете в Python? Ну, большинство людей делают что -то подобное

first_int = int(input())
second_int = int(input())
print(first_int + second_int)

Для этого кода вход будет выглядеть так

12 # hit enter
3  # hit enter again
# output
15

Фу.

Чтение двух строк в одной и той же строке

Забудьте о последнем примере немного. Допустим, вы хотите сделать код, который получает две строки в одной строке и инвертировать, как

# input
hello world # enter (in one single line)

# output
world hello

Вы можете использовать расколоть

first_string, second_string = input().split()
print(second_string, first_string) # out: 'world hello'

Obs : Сплит также может получить символы разделителя в качестве аргументов. Допустим, ваши струны разделены на запяту

hello, there

Чтобы разделить тех, кого вы могли бы использовать

first_string, second_string = input().split(', ')
print(second_string, ', ', first_string) # out: 'world, hello'

Имейте в виду пространство на Сплит Аргумент: расколоть(', ') , не расколоть(',')

Входы переменной длины

В последнем примере мы знали, что собираемся получить две строки в качестве входных данных. Но как насчет того, когда мы не знаем, сколько струн есть заранее?

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

# input
hello darkness my old friend # hit enter
# output
friend old my darkness hello

# input
just three strings # hit enter
# output
strings three just

Вы можете использовать Список понимания

all_strings = [string for string in input().split()]
print(all_strings[::-1]) # all_strings[::-1] inverts the list

Возвращаясь к нашему первому примеру (добавление двух целых чисел), разве не было бы лучше, если бы мы могли пройти в два числа в одной линии?

Если вам нужно читать номера вместо строк, вы можете использовать Тип кастинг

# Mind the int(a) converting each string to int
first_int, second_int = [int(a) for a in input().split()]
print(first_int + second_int)

# Or convert to float
first_float, second_float = [float(a) for a in input().split()]
print(first_float + second_float)

Что, если мы хотим подвести итоги столько чисел, сколько приведены в входном порядке? Вот так

# input
1 2
# output
3

# input
2 3 3 4
# output
12

Мы прочитали список целых чисел и впоследствии суммируем их

# Mind the int(a) converting each string to int
list_of_ints = [int(a) for a in input().split()]
print(sum(list_of_ints))

Это также может быть полезно в упражнениях по конкурентному программированию или алгоритму, если у вас есть вход, подобный <номер N> [Список n номеров]

2 9 8       # input 1
3 1 2 3     # input 2
4 8 9 8 7   # input 3

Как и в Python, вам не нужно знать длину списка заранее (вы можете просто использовать len (my_list) ), вы можете отказаться от первого числа списка, используя срезы

list_of_ints = [int(a) for a in input().split()][1:]

Или даже поп

list_of_ints = [int(a) for a in input().split()]
list_of_ints.pop(0)

Если вы знакомы с CPI C для обработки файлов, Python будет казаться очень похожим, но со всеми функциями, которые вы всегда хотели в C.

Первое: открытие, чтение, написание, закрытие

# Open test_file.txt for writing (w) using an absolute path
some_file = open('/home/gabriel/test_file.txt', 'w')

# Open test_file.txt for reading (r) using a relative path
some_other_file = open('test_file.txt', 'r')

# Copy the content from some_other_file to some_file
content = some_other_file.read()
some_file.write(content)

# Close files
some_file.close()
some_other_file.close()

Имейте в виду, что, хотя они кажутся одним и тем же файлом, some_other_file может не то же самое, что some_file Потому что это указано относительный путь вместо абсолютного

Лучший способ сделать вышеупомянутый, однако, – использовать Контекстные менеджеры , точнее, а с утверждение

with open('/home/gabriel/test_file.txt', 'w') as some_file, \      
     open('test_file.txt', 'r') as some_other_file:

    # Copy the content from some_other_file to some_file
    content = some_other_file.read()
    some_file.write(content)

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

Оригинал: “https://dev.to/gmelodie/3-tricks-every-python-programmer-needs-to-know-n9c”