Эта статья подходит для опытных программистов, желающих как можно быстрее окунуться в мир 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] Вы можете получить соответствующий сюрприз!
- Адрес блога, созданный мной:Блог Кошмара Назад
"❤️Спасибо всем"
- Поставьте лайк и поддержите его, чтобы больше людей увидело этот контент
- Вы можете поделиться со мной своими мыслями в области комментариев, и вы также можете записать свой мыслительный процесс в области комментариев.