Супер подробный 1 час для изучения Python

Python

Эта статья подходит для опытных программистов, желающих как можно быстрее окунуться в мир Python.В частности, если вы владеете Java и Javascript, то сможете быстро и свободно писать полезные Python-программы на Python менее чем за час.

Зачем использовать Python

Предположим, у нас есть такая задача: просто проверить, подключены ли компьютеры в локальной сети, диапазон ip этих компьютеров от 192.168.0.101 до 192.168.0.200. 

Идея: использовать программирование оболочки.(Linux обычно это bash, а Windows - это пакетный скрипт). Например, в Windows используйте команду ping ip, чтобы проверить каждую машину по очереди и получить вывод консоли. Так как текст консоли обычно " Ответить от ... " При отсутствии соединения отображается текст "время ожидания...", поэтому, выполнив поиск строки в результате, вы можете узнать, подключена ли машина.

Реализация: код Java выглядит следующим образом:

String cmd="cmd.exe ping ";
String ipprefix="192.168.10."; int begin=101; int end=200;
Process p=null; for(int i=begin;i<end;i++){
     p= Runtime.getRuntime().exec(cmd+i);
     String line = null;
     BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
     while((line = reader.readLine()) != null)
     {
         //Handling line , may logs it.  }
    reader.close();
    p.destroy();
} 

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

  • написать файл класса
  • написать основной метод
  • скомпилировать его в байт-код
  • Поскольку байт-код нельзя запустить напрямую, вам нужно написать небольшой скрипт bat или bash для его запуска.

Конечно, C/C++ тоже может работать, но C/C++ не является кросс-платформенным языком, в этом достаточно простом примере разница между реализацией C/C++ и Java может быть не видна, но в некоторых более сложных сценариях , например, для записи информации о соединении в сетевую базу данных.Из-за разных реализаций сетевых интерфейсов в Linux и Windows необходимо написать две версии функции.С Java такой проблемы нет.

Та же работа реализована в Python следующим образом:

 import subprocess

cmd="cmd.exe" begin=101 end=200  while begin<end:

    p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,
                   stdin=subprocess.PIPE,
                   stderr=subprocess.PIPE)
    p.stdin.write("ping 192.168.1."+str(begin)+"\n")

    p.stdin.close()
    p.wait()

    print "execution result: %s"%p.stdout.read() 

По сравнению с Java реализация Python более лаконична, а время написания меньше.Вам не нужно писать основную функцию, и программу можно запускать сразу после сохранения.Кроме того, как и Java, Python также является кроссплатформенным .

Опытные программисты на C/Java могут возразить, что писать на C/Java быстрее, чем на Python. Python Скорость будет намного выше, чем у Java. Например, при работе с локальным файлом вам нужна только одна строка кода вместо множества классов-оболочек Java. Различные языки имеют свою естественную подходящую область применения. Использование Python для обработки некоторых короткие программы аналогичны операциям. Интерактивное программирование системы максимально экономит время и труд.


Приложение Python

Достаточно простые задачи, такие как программирование оболочки.Если вам нравится создавать большие коммерческие веб-сайты или разрабатывать сложные игры на Python, добро пожаловать.


Hello world

После установки Python (моя версия 2.5.4), откройте IDLE (Python GUI), программа представляет собой интерпретатор языка Python, и написанный вами оператор может выполняться немедленно.Давайте напишем известный программный оператор:

print "Hello,world!"

и нажмите Enter.Вы можете увидеть эту известную цитату, введенную в мир программирования K&R.

Выберите "Файл" -- "Новое окно" или нажмите Ctrl+N в интерпретаторе, чтобы открыть новый редактор. Напишите следующий оператор:

print "Hello,world!"
raw_input("Press enter key to close this window! ");

Сохраните его как файл .py.Нажмите F5 и вы увидите результат запуска программы.Это второй способ запуска Python.

Найдите сохраненный файл a.py и дважды щелкните его. Вы также можете увидеть результаты программы. Программы Python могут запускаться напрямую, что является преимуществом по сравнению с Java.


Международная поддержка

Давайте поприветствуем мир по-другому.Создайте новый редактор и напишите следующий код:

print "欢迎来到奥运中国!" 
raw_input("Press enter key to close this window!");

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

# -*- coding: cp936 -*-
print "欢迎来到奥运中国!" 
raw_input("Press enter key to close this window! ");

Измените эту кодировку на что-то более знакомое нам:

# -*- coding: GBK -*-

print "欢迎来到奥运中国!" # 使用中文的例子 
raw_input("Press enter key to close this window");

Программа работает так же хорошо.


Простой в использовании калькулятор

Считать с помощью калькулятора, поставляемого с Microsoft, слишком сложно.Откройте интерпретатор Python и выполните вычисления напрямую:

a=100.0 
b=201.1 
c=2343 
print (a+b+c)/c 

Строки, ASCII и UNICODE

Строка предопределенных выходных форматов может быть распечатана следующим образом:

print """ Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to """

Как осуществляется доступ к строкам? См. этот пример:

word="abcdefg" a=word[2]
print "a is: "+a
b=word[1:3]
print "b is: "+b # index 1 and 2 elements of word.
c=word[:2]
print "c is: "+c # index 0 and 1 elements of word.
d=word[0:]
print "d is: "+d # All elements of word.
e=word[:2]+word[2:]
print "e is: "+e # All elements of word.
f=word[-1]
print "f is: "+f # The last elements of word.
g=word[-4:-2]
print "g is: "+g # index 3 and 4 elements of word.
h=word[-2:]
print "h is: "+h # The last two elements.
i=word[:-2]
print "i is: "+i # Everything except the last two characters
l=len(word)
print "Length of word is: "+ str(l)

Обратите внимание на разницу между строками ASCII и UNICODE:

print "Input your Chinese name:" s=raw_input("Press enter to be continued ");
print "Your name is  : " +s;
l=len(s)
print "Length of your Chinese name in asc codes is:"+str(l);
a=unicode(s,"GBK")
l=len(a)
print "I'm sorry we should use unicode char!Characters number of your Chinese \  name in unicode is:"+str(l);

Использовать список

Подобно List в Java, это удобный тип данных:

word=['a','b','c','d','e','f','g']
a=word[2]
print "a is: "+a
b=word[1:3]
print "b is: " print b # index1 and 2 elements of word.
c=word[:2]
print "c is: " print c # index0 and 1 elements of word.
d=word[0:]
print "d is: " print d # All elements of word.
e=word[:2]+word[2:]
print "e is: " print e # All elements of word.
f=word[-1]
print "f is: " print f # The last elements of word.
g=word[-4:-2]
print "g is: " print g # index3 and 4 elements of word.
h=word[-2:]
print "h is: " print h # The last two elements.
i=word[:-2]
print "i is: " print i # Everything except the last two characters
l=len(word)
print "Length of word is: "+ str(l)
print "Adds new element[图片上传中...(image-b4ced-1616074265420-0)] " word.append('h')
print word

Условные и циклические операторы

# Multi-way decision
x=int(raw_input("Please enter an integer:")) if x<0:
    x=0 print"Negative changed to zero" elif x==0:
    print "Zero"  else:
    print "More" # Loops List
a= ['cat', 'window', 'defenestrate'] for x ina:
    print x, len(x) 

Как определить функцию

# Define and invoke function.
def sum(a,b):
    return a+b

func = sum
r = func(5,6)
print r

# Defines function with default argument
def add(a,b=2):
    return a+b
r=add(1)
print r
r=add(1,5)
print r

И ввести удобную и простую в использовании функцию:

# The range() function
a =range(5,10)
print a
a = range(-2,-7)
print a
a = range(-7,-2)
print a
a = range(-2,-11,-3) # The 3rd parameter stands for step
print a

файловый ввод/вывод

spath="D:/download/baa.txt" f=open(spath,"w") # Opens file for writing.Creates this file doesn't exist.  f.write("First line 1.\n")
f.writelines("First line 2.")

f.close()

f=open(spath,"r") # Opens file forreading for line in f:
    print line

f.close()

Обработка исключений

s=raw_input("Input your age:") if s =="":
    raise Exception("Input must no be empty.") try:
    i=int(s)
except ValueError:
    print "Could not convert data to an integer." except:
    print"Unknown exception!"  else: # It is useful for code that must be executed if the try clause does not raise an exception
    print "You are %d" % i," years old"  finally: # Clean up action
    print "Goodbye!"

Классы и наследование

class Base:
    def __init__(self):
        self.data =[]
    def add(self, x):
        self.data.append(x)
    def addtwice(self, x):
        self.add(x)
        self.add(x)

# Child extends Base class Child(Base):
    def plus(self,a,b):
        return a+b

oChild =Child()
oChild.add("str1")
print oChild.data
print oChild.plus(2,3)

Пакетный механизм

Каждый файл .py называется модулем, и модули можно импортировать друг в друга. См. следующие примеры:

# a.py
def add_func(a,b):
    return a+b
# b.py
from a import add_func # Also can be : import a

print "Import add_func from module a" 
print"Result of 1 plus 2 is: " print add_func(1,2)    # If using "import a" , then here should be "a.add_func"

Модуль может быть определен внутри пакета.То, как Python определяет пакет, немного странное, скажем, у нас есть родительская папка, в которой есть дочерняя подпапка.В дочерней папке есть модуль a.py.Как сообщить Python об этом эта структура файловой иерархии? Очень просто, поместите файл с именем _ в каждый каталогinit_.py. Содержимое этого файла может быть пустым. Иерархия выглядит так:

parent 
  --__init_.py
  --child
    -- __init_.py
    --a.py

b.py

Итак, как Python находит модуль, который мы определяем?В стандартном пакете sys атрибут path записывает путь к пакету Python.Вы можете распечатать его:

import sys

print sys.path

Обычно мы можем поместить путь пакета модуля в переменную среды PYTHONPATH, и переменная среды будет автоматически добавлена ​​в свойство sys.path.Другой удобный способ — напрямую указать путь нашего модуля к sys.path в программировании:

import sys
sys.path.append('D:\\download')

from parent.child.a import add_func

print sys.path

print "Import add_func from module a" print"Result of 1 plus 2 is: " print add_func(1,2)

Суммировать

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

портал ресурсов

  • Обратите внимание на публичный аккаунт [Быть программистом-тендером]
  • Ответить в фоновом режиме публичного аккаунта [Быть программистом тендера] [данные питона】【Осенний набор 2020] Вы можете получить соответствующий сюрприз!
  • Адрес блога, созданный мной:Блог Кошмара Назад

"❤️Спасибо всем"

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