Maison > développement back-end > Tutoriel Python > Développement automatisé Python, Jour 2 - Bases de Python 2

Développement automatisé Python, Jour 2 - Bases de Python 2

高洛峰
Libérer: 2017-02-17 11:35:32
original
1510 Les gens l'ont consulté

Contenu de ce chapitre

  1. holle word

  2. Variable

  3. Encodage des caractères

  4. Saisie utilisateur

  5. Initialisation du module

  6. Type de données

  7. Opérations sur les données

  8. if...else

  9. for boucle

  10. boucle while

1. Le premier programme Holle Word

 #! /usr/bin/env python
 # -*- coding:utf-8 -*-
 #Author:Lyon
 
  print("holle word")
Copier après la connexion

dans l'environnement Python3 5.2. , les résultats d'exécution sont les suivants :

Python 3.5.2 (v3.5.2:4def2a2901a5,Jun 25 2016, 22:18:55)  [MSC v.1906 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("holle word")
holle word
>>>
Copier après la connexion

2. Variables

Les variables sont utilisées pour stocker des informations référencées et manipulées dans des programmes informatiques. Les variables peuvent être explicitement définies comme des abstractions avec un espace de stockage qui représente un état mutable (comme dans Java et Visual Basic) ; le seul but d'une variable est d'étiqueter et de stocker des données en mémoire. Ces données peuvent être utilisées tout au long du programme.

Déclarer des variables

 #! usr/bin/eve python
 # -*- coding:utf-8 -*-

 name = "Lyon"
Copier après la connexion

Le code ci-dessus déclare une variable, le nom de la variable est : nom, variable name La valeur est : "Lyon"

Règles de définition des variables :

  1. Les noms de variables ne peuvent être qu'une combinaison de lettres, de chiffres ou de traits de soulignement

  2. Le premier caractère du nom de variable ne peut pas être un nombre

  3. Les mots-clés suivants ne peuvent pas être déclarés comme noms de variable :

[' et' , 'as' , 'assert' , 'break' , 'class' , 'continue' , 'def' , 'del' , 'eilf' , 'else' , 'sauf' , 'exec' , 'finally' , 'for' , 'from' , 'global' , 'if' , 'import' , 'in' , 'is' , 'lambda' , 'not' , 'or' , 'pass' , 'print ' , 'raise' , 'return' , 'try' , 'while' , 'with' , 'yield' ]

3. Codage des caractères

L'interpréteur python charge le code dans le Fichier .py Lorsque , le contenu sera codé (Ascill par défaut)

ASCII (American Standard Code for Information Interchange, American Standard Code for Information Interchange) est un système de codage informatique basé sur des lettres latines, principalement utilisé pour afficher les langues modernes et les autres langues d'Europe occidentale ne peuvent être représentées que par 8 bits maximum (un octet), soit : 2**8 = 256-1. Par conséquent, le code ASCII ne peut représenter que jusqu'à 255 symboles. Python自动化开发,Day2 - Python基础2

À propos du chinois.

Afin de gérer Hanzi, les programmeurs ont conçu GB2132 pour le chinois simplifié et big5 pour le chinois traditionnel.

GB2132 (1980) contient un total de 7445 caractères, dont 6763 Hanzi et 682 autres symboles. La plage de code interne de la zone Hanzi va de B0-F7 dans l'octet de poids fort et de A1-FE dans l'octet de poids faible. Les bits de code occupés sont 72*94=6768. Il y a 5 bits vides D7FA-D7FE.

GB2312 prend en charge trop peu de caractères chinois. La spécification d'extension des caractères chinois de 1995, GBK1.0, comprend 21 886 symboles, divisés en zone de caractères chinois et zone de symboles graphiques. La zone des caractères chinois comprend 21 003 caractères. GB18030 en 2000 est la version standard nationale officielle qui a remplacé GBK1.0. Cette norme comprend 27 484 caractères chinois, ainsi que le tibétain, le mongol, l'ouïghour et d'autres langues minoritaires ethniques majeures. La plate-forme PC actuelle doit prendre en charge le GB18030 et il n'y a aucune exigence pour les produits intégrés. Par conséquent, les téléphones mobiles et les MP3 ne prennent généralement en charge que le GB2312.

De ASCII, GB2312, GBK à GB18030, ces méthodes de codage sont rétrocompatibles, c'est-à-dire que le même caractère a toujours le même codage dans ces schémas, et les normes ultérieures prennent en charge plus de caractères. Dans ces codes, l'anglais et le chinois peuvent être traités de manière uniforme. La façon de distinguer le codage chinois est que le bit le plus élevé de l'octet de poids fort n'est pas 0. Selon le nom du programmeur, GB2312, GBK à GB18030 appartiennent tous à des jeux de caractères à deux octets (DBCS).

Le code interne par défaut de certains Windows chinois est toujours GBK, qui peut être mis à niveau vers GB18030 via le package de mise à niveau GB18030. Cependant, les caractères ajoutés par GB18030 par rapport à GBK sont difficiles à utiliser pour les gens ordinaires. Habituellement, nous utilisons toujours GBK pour faire référence au code interne chinois de Windows.

Évidemment, le code ASCII ne peut pas exprimer tous les différents textes et caractères du monde, donc un nouvel encodage pouvant représenter tous les caractères et symboles est nécessaire, à savoir : Unicode

Unicode (Unicode, Unicode, Unicode) est un codage de caractères utilisé sur les ordinateurs. Unicode a été créé pour résoudre les limites des schémas de codage de caractères traditionnels. Il définit un codage binaire unifié et unique pour chaque caractère dans chaque langue, stipulant que tous les caractères et symboles doivent être représentés par au moins 16 bits (2 octets), c'est-à-dire : 2**16=65536,

Remarque : ce qui est mentionné ici fait au moins 2 octets, peut-être plus

UTF-8, qui est le codage Unicode Pour la compression et l'optimisation, il n'est plus utilise au moins 2 octets, mais classe tous les caractères et symboles : le contenu du code ASCII est enregistré sur un octet, les caractères européens sont enregistrés sur deux octets et les caractères d'Asie de l'Est sont enregistrés sur deux octets. Les caractères sont enregistrés sur 3 octets. ...

Ainsi, lorsque l'interpréteur python chargera le code dans le fichier .py, il encodera le contenu (ascill par défaut), s'il s'agit du code suivant :

Erreur : ascii le code ne peut pas représenter le chinois

 #!/usr/bin/env python
 
 print("你好,世界")
Copier après la connexion

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python
# -*-  coding=utf-8 -*-
 
print("你好,世界")
Copier après la connexion

 

四、用户输入 

#!usr/bin/env python#-*- coding:utf-8 -*-
#name = raw_input("What is your name?") only on python 
xname = input("What is your name?")print("Hello"+name)
Copier après la connexion

 

输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法,即:

#!usr/bin/env python# -*-  coding:utf-8  -*-import getpass

name = input("username:")
password =getpass.getpass("password:")print(password)
Copier après la connexion

 

五、模块初识

Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,这里先象征性的学2个简单的。

sys

#!/usr/bin/env python
# -*-  coding:utf-8  -*-

import sys

print(sys.argv)

#输出
$ python test.py hello world
['test.py','hello','world']#把执行脚本时传递的参数获取到了
Copier après la connexion

os

#!/usr/bin/env python
# -*-  coding:utf-8  -*-

import os

os.system("df-h")#调用系统命令
Copier après la connexion

结合一下

 import os,sys
 
 os,system(''.join(sys.argv[1:]))#把用户输入的参数当作一条命令交给os.system来执行
Copier après la connexion

 

模块也可以可以来写,但是如果想在系统的任何一个地方都使用的话,就需要把所写的。py文件放到python全局环境变量目录里,基本一般都放在一个叫site-packages目录下,这个目录在不同os里放的位置不一样,用print(sys.path)可以查看python环境变量列表。

六、数据类型

1、数字

2是一个整数的例子。

长整数不过是大一些的整数。

3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3*10-4。

(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?

 int(整型)

 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数是64位,取值范围为-2**63-2~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

float(浮点型)

先扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html

浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数)

复数由实数部分和虚数部分组成,一般形式为x+yh,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5~257

2、布尔值

真或假

1或0

3、字符串

字符串拼接:

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,+号每出现一次就会在内存中重新开辟一块空间。

字符串格式化输出

 name = "Lyon"
 print("i am %s"% name)
 
 #输出:i am Lyon
Copier après la connexion

 

PS:字符串是%s;整数%d;浮点数%f

字符串常用功能:

  • 移除空白

  • 分割

  • 长度

  • 索引

  • 切片

4、列表

创建列表:

name_list = ['Lyon','one','two']
或
name_list =list(['Lyon','one','two'])
Copier après la connexion

 

基本操作:

  • 索引

  • 切片

  • 追加

  • 删除

  • 长度

  • 切片

  • 循环

  • 包含

5、元组(不可变列表)

创建元组:

 ages = (11, 22, 33, 44, 55)
 或
 ages = tuple((11, 22, 33, 44, 55))
Copier après la connexion

 

6、字典(无序)

创建字典:

 person = {"name": "mr.wu", 'age': 18}
 或
 person = dict({"name": "mr.wu", 'age': 18})
Copier après la connexion

 

常用操作:

  • 索引

  • 新增

  • 删除

  • 键值

  • 循环

  • 长度

七、数据运算

算数运算:

Python自动化开发,Day2 - Python基础2

比较运算:

Python自动化开发,Day2 - Python基础2

赋值运算:

Python自动化开发,Day2 - Python基础2

逻辑运算:

Python自动化开发,Day2 - Python基础2

成员运算:

Python自动化开发,Day2 - Python基础2

身份运算:

Python自动化开发,Day2 - Python基础2

 

位运算:

Python自动化开发,Day2 - Python基础2


运算符优先级:

Python自动化开发,Day2 - Python基础2


八、表达式if......else

 场景一:用户登录验证

 #!usr/bin/env python
# -*-  coding:utf-8  -*-
#Author:Lyon

import getpass

name = input("请输入用户名:")
password = getpass.getpass("请输入密码:")

if name =="Lyon" and password =="yang":
    print("欢迎你!")
else:
    print("用户名或密码错误")
Copier après la connexion

 

场景二:猜年龄游戏

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
age =21 
user_input = int(input("input your guess num:"))
 
if user_input == age:
    print("Congratulations, you got it !")
elif user_input < age:
    print("Oops,think bigger!")
else:
    print("think smaller!")
Copier après la connexion

外层变量,可以被内层代码使用

内层变量,不应被外层代码使用

九、for循环

最简单的循环10次

#_*_coding:utf-8_*_
__author__ = &#39;Alex Li&#39;
 
 
for i in range(10):
    print("loop:", i )
Copier après la connexion

输出:

loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9
Copier après la connexion

需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

 for i in range(10):
     if i<5:
         continue
     print("loop:"i)
Copier après la connexion

需求二:还是上面的程序,但是遇到大于5的循环次数就不走了直接退出

 for i in range(10):
     if i>5:
         break
    print("loop:"i)
Copier après la connexion

 

十、while loop

有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂。

 count = 0
 while True:
     print("你是风儿我是沙,缠缠绵绵走天涯",count)
     count +=1
Copier après la connexion

更多Python自动化开发,Day2 - Python基础2 相关文章请关注PHP中文网!

 

É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