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(); }
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 :
.
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()
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.
print "Hello,world!"
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");
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
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");
# -*- coding: cp936 -*- print "欢迎来到奥运中国!" raw_input("Press enter key to close this window");
# -*- coding: GBK -*- print "欢迎来到奥运中国!" # 使用中文的例子 raw_input("Press enter key to close this window");
2.3 Calculatrice pratique et facile à utiliser
a=100.0 b=201.1 c=2343 print (a+b+c)/c
print """ Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """
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)
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);
word=['a','b','c','d','e','f','g'] 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('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 in a: 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 for reading 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文件称为一个module,module之间可以互相导入.请参看以下例子:
# 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"
module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:
parent --init_.py --child -- init_.py --a.py b.py
那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:
import sys print sys.path
通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到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,然后尽快能用它开始编程.
当然,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!