Pourquoi utiliser Python et le didacticiel de démarrage rapide Python

Y2J
Libérer: 2017-04-18 17:58:36
original
1309 Les gens l'ont consulté

1 Pourquoi utiliser Python ?

Supposons que nous ayons une telle tâche : testez simplement si les ordinateurs du LAN sont connectés. La plage IP de ces ordinateurs est de 192.168.0.101 à 192.168.0.200. 🎜>
Idée : utilisez la programmation shell. (Linux est généralement du bash et Windows est un script batch). Par exemple, sous Windows, utilisez la commande ping ip pour tester chaque machine tour à tour et obtenir la sortie de la console. C'est généralement lorsque le ping réussit. Il s'agit de "Réponse de...", et lorsqu'il n'est pas connecté, le texte est "time out...", donc en recherchant la chaîne dans le résultat, vous pouvez savoir si la machine est connecté.

Implémentation : code Java Comme suit :

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();
}
Copier après la connexion

Ce code fonctionne très bien. Le problème est que pour exécuter ce code, vous devez. faire un travail supplémentaire. Ce travail supplémentaire comprend :

  • Écrire un fichier de classe

  • Écrire une méthode principale

  • Compilez-le en mots Code de section

  • Étant donné que le code d'octet ne peut pas être exécuté directement, vous devez écrire un petit script bat ou bash pour l'exécuter

    .

Bien sûr, ce travail peut également être effectué avec C/C++ Mais C/C++ n'est pas un langage multiplateforme. Dans cet exemple assez simple, vous ne pourrez peut-être pas voir la différence. entre l'implémentation C/C++ et Java, mais dans certains scénarios plus complexes, par exemple, vous souhaitez enregistrer des informations de connectivité dans une base de données réseau Étant donné que l'

interface réseau est implémentée différemment sous Linux et Windows, vous devez le faire. écrire deux versions de la fonction Ce n'est pas possible en Java De tels problèmes.
Le même travail est implémenté en Python comme suit :


<🎜. >

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()
Copier après la connexion
Par rapport à Java, l'implémentation de Python est plus concise et prend moins de temps à écrire. Vous n'avez pas besoin d'écrire la fonction principale et le programme peut être exécuté directement après l'enregistrement. Java, Python est également multiplateforme.


Les programmeurs C/Java expérimentés peuvent affirmer que l'utilisation de l'écriture en C/Java sera plus rapide que l'écriture en Python. Mon idée est qu'après avoir maîtrisé. à la fois en Java et en Python, vous constaterez que l'écriture de tels programmes en Python sera beaucoup plus rapide que l'utilisation de Java. Par exemple, l'exploitation de fichiers locaux. Vous n'avez besoin que d'une seule ligne de code et vous n'avez pas besoin de plusieurs classes de wrapper de flux en Java. propre gamme d'applications naturellement appropriée. Utiliser Python pour traiter certains programmes courts similaires à la programmation interactive avec le système d'exploitation est le moyen le plus rapide et le plus économique.



Scénarios d'application Python.
Tâches assez simples, comme de la programmation shell. Si vous aimez utiliser Python pour concevoir de grands sites Web commerciaux ou des jeux complexes, apprenez-en davantage.



2 Démarrage rapide

2.1 Bonjour tout le monde


Après avoir installé Python (je suis la version de votre machine est 2.5.4), ouvrez IDLE ( Python GUI), ce programme est un interpréteur du langage Python, l'instruction que vous écrivez peut être exécutée immédiatement. Écrivons une célèbre instruction de programme :



print "Hello,world!"
Copier après la connexion
Et appuyez sur Entrée. . Vous verrez cette célèbre citation introduite par K&R dans le monde de la programmation.


Sélectionnez "Fichier" - "Nouvelle fenêtre" dans l'interpréteur ou appuyez sur la touche de raccourci Ctrl+N pour ouvrir un nouvel éditeur. déclaration suivante :


print "Hello,world!"
raw_input("Press enter key to close this window");
Copier après la connexion
Enregistrez-le en tant que fichier a.py et vous pourrez voir le programme Les résultats en cours d'exécution. C'est la deuxième méthode d'exécution de Python.

Recherchez le fichier a.py que vous avez enregistré et double-cliquez dessus. Vous pouvez également voir les résultats du programme. Les programmes Python peuvent être exécutés directement par rapport à Java.



2.2 Support international


Saluons le monde d'une manière différente Créez un nouvel éditeur et écrivez le code suivant :


Lorsque vous enregistrez le code, Python. vous demandera si vous souhaitez modifier le jeu de caractères du fichier. Le résultat est le suivant :

print "欢迎来到奥运中国!"
raw_input("Press enter key to close this window");
Copier après la connexion


Remplacez le jeu de caractères par nos formulaires familiers modifiés :
# -*- coding: cp936 -*- 
print "欢迎来到奥运中国!"
raw_input("Press enter key to close this window");
Copier après la connexion



Le programme fonctionne toujours bien.
# -*- coding: GBK -*- 
print "欢迎来到奥运中国!" # 使用中文的例子
raw_input("Press enter key to close this window");
Copier après la connexion



2.3 Calculatrice pratique et facile à utiliser


Il est trop difficile de comptez avec la calculatrice fournie par Microsoft. Ouvrez l'interpréteur Python et calculez directement :


2.4 Chaînes, ASCII et UNICODE
a=100.0
b=201.1
c=2343
print (a+b+c)/c
Copier après la connexion

Vous pouvez imprimer une chaîne dans le format de sortie prédéfini comme suit :



Comment accéder à la chaîne Veuillez consulter cet exemple :
print """
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
"""
Copier après la connexion



Veuillez noter ? la différence entre les chaînes ASCII et UNICODE :

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)
Copier après la connexion


2.5 Utiliser List
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&#39;m sorry we should use unicode char!Characters number of your Chinese \
name in unicode is:"+str(l);
Copier après la connexion

Semblable à List en Java, c'est un outil pratique et facile à utiliser -utiliser le
type de données
 :


2.6 Instructions conditionnelles et en boucle
word=[&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;]
a=word[2]
print "a is: "+a
b=word[1:3]
print "b is: "
print b # index 1 and 2 elements of word.
c=word[:2]
print "c is: "
print c # index 0 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 # index 3 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"
word.append(&#39;h&#39;)
print word
Copier après la connexion

2.7 Comment définir la fonction
# 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 = [&#39;cat&#39;, &#39;window&#39;, &#39;defenestrate&#39;]
for x in a:
    print x, len(x)
Copier après la connexion

Et introduisez une fonction pratique et facile à utiliser :
# 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
Copier après la connexion

# 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
Copier après la connexion

2.8 文件I/O
spath="D:/download/baa.txt"
f=open(spath,"w") # Opens file for writing.Creates this file doesn&#39;t exist.
f.write("First line 1.\n")
f.writelines("First line 2.")
f.close()
f=open(spath,"r") # Opens file for reading
for line in f:
    print line
f.close()
Copier après la connexion

2.9 异常处理
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!"
Copier après la connexion

2.10 类和继承
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)
Copier après la connexion

2.11 包机制

每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:

# a.py
def add_func(a,b):
    return a+b
Copier après la connexion
# 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"
Copier après la connexion



module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:

parent 
  --init_.py
  --child
    -- init_.py
    --a.py
b.py
Copier après la connexion


那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:

import sys
print sys.path
Copier après la connexion


通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:

import sys
sys.path.append(&#39;D:\\download&#39;)
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)
Copier après la connexion

总结

    你会发现这个教程相当的简单.许多Python特性在代码中以隐含方式提出,这些特性包括:Python不需要显式声明数据类型,关键字说明,字符串函数的解释等等.我认为一个熟练的程序员应该对这些概念相当了解,这样在你挤出宝贵的一小时阅读这篇短短的教程之后,你能够通过已有知识的迁移类比尽快熟悉Python,然后尽快能用它开始编程.

    当然,1小时学会Python颇有哗众取宠之嫌.确切的说,编程语言包括语法和标准库.语法相当于武术招式,而标准库应用实践经验则类似于内功,需要长期锻炼.Python学习了Java的长处,提供了大量极方便易用的标准库供程序员"拿来主义".(这也是Python成功的原因),在开篇我们看到了Python如何调用Windows cmd的例子,以后我会尽量写上各标准库的用法和一些应用技巧,让大家真正掌握Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!