Maison développement back-end Tutoriel Python Python程序设计入门(1)基本语法简介

Python程序设计入门(1)基本语法简介

Jun 16, 2016 am 08:43 AM
python 基本语法

Python是当今日趋流行的一种脚本语言,它比Java更简单,比php更强大,并且还适用于做桌面应用的开发,在ubuntu中,更加是必须的一种脚本引擎,所以有必要去学习一下,这里的文章只针对有一定编程基础,最好是比较熟悉php或javascript的用户,如果没任何基础的新手建议找更详细的教程去学习。

Python的变量是不需要定义的,这方面和php一样,它比javascript还是宽松,不过它是用缩进作为段落标识的,作为习惯了C语言风格语法的人,可能一开始会很不习惯使用,但细一想,其实也是很正常,很合理的。虽然Python在面向过程/面向对象方面也是很宽松,但实际上一般的程序都是一个主入口,然后不断调用其它类库或函数,所以用缩进的方式并无不妥,那样一方面要求用户写代码时要规范,另一方面反向省去了多余的{}。
与C语言风格相比,Python主要语法特点而下:

1、变量、字符串
    在python中,所有变量都是对象,数组其实是一个链表,并且可以进行相应的链表操作。
1.1 对于普通数据类型,定义/赋值方法都是一样的,这里不作介绍,python的字符串方面有些特别,这里介绍一下。
python对字符串用 [']["] 括起含义是一样的,同样对特殊字符使用 [\] 进行转义
不过它有一个很特别的语法就是:[''']三引号,它用于括起分多行的字符串,实际是这也可以作为它的多行注解,如:

复制代码 代码如下:
# -*- coding: gb18030 -*-
'''
单独使用三引号,字符串因为没有使用,就相当于注解了
下面是给一个变量赋值
'''
str = ''' 我是一个三引号,\'oh!\'我可以换行,
          换行了,照样OK '''
print str

这样的语法很有趣吧。
需要特别注意的是,如果源码里有中文的,一定要在源码的第一行定义:
# -*- coding: gb18030 -*-

当然,你也可以使用utf-8编码,这看你是在linux还是在windows下调试了。

1.2 此外关于变量方面,有几个内置类型是有必要了解的,它们是:None、True、False (注意:python的变量是严格区分大小写的)

None 是表示没定义的变量,至于True/False这个谁都知道了吧,呵呵。

注解:除了用 ''' 作多行注解之外,也可以用 # 作为单行注解,这是linux下的脚本语言的常规做法了。

续行:python 中对于太长的行,可以用 \ 表示未结束,这和linux的shell的通用做法是一致的。

1.3 数组定义:
arr = ['a', 'b', 'c']
等同于
arr = []
arr += ['a']
arr += ['b']
arr += ['c']
#遍历方法:
for i in range(0, len(arr)):
    print arr[i], "\n"
python的数组实际不是数组,而是一个list对象,如果要参考它的用法,可以参考这个对象的方法。
需要注意的是,python的数组实际是一个链表,因此定义后不能像php之类语言一样,直接在后面追加元素,而是需要用操作链表的方法操作。在上述例子中:如果用 arr[2] = 'ccccc' 可以改变第三个元素的值,但如果用 arr[3] = 'dddd' 增加一个元素是会指错的,应该用:arr.append('ddddd') 或 arr.insert(任意位置, 'dddd') 增加元素

对于多维数组,定义方式为: arr = [[]] * 3 它定义的是:[[], [], []],也可以用 arr = [[] for i in range(3)]

对于数组和字符串等常用操作,后面会有一章专门介绍,这里就不在列举更多的使用方法。

2、区块的定义(如语句、函数等)

Python的区块的格式都是

区块代码:
    区块内部的代码

它怎么判断区块结束呢?它不同VB、Dephi之类,区块都是有结束标志的,它没有,它是纯粹根据缩进来识别的,这样虽然有点怪异,不过习惯了会觉得也是挺好的。

区块基本定义语法:

2.1. if / elif / else

复制代码 代码如下:
x=int(raw_input("Please enter an integer:")) #获取行输入
if x>0:
    print '正数'
elif x==0:
    print '零'
else:
    print '负数'

Python中没用三问运算符,不过可以用 (满足条件的值 if 满足条件 else 未满足条件的值) 替代
如: str = ('ok' if 1>2 else 'not ok')
最终结果是: str == 'not ok'

这里需要说明的一个地方是,python中没有 !、&& 和 || 运算符,而是用 not、and、or

2.2. in
in判断 一个数 是否在 一个集合(如:元组,列表等) 中
if 'yes' in  ('y','ye','yes'):
    print  'ok'
与之相对应的还有 not in

2.3. for ... in
python中没有类似C 中的for循环,而是使用for...in来对集合中的每一个元素进行操作

复制代码 代码如下:
a=['cat','door','example']
for x in a:
    print x
等同于:
复制代码 代码如下:
for i in range( 0, len(a) ):
    print a[i]

如果要修改a的内容,请用a的副本循环 (否则不安全),如:

复制代码 代码如下:
a=["cat","tttyyyuuu"]
for x in a[:]:
    if len(x)>6: a.insert(0,x)
print a

结果为:
['tttyyyuuu', 'cat', 'tttyyyuuu']

2.4. break / continue

这两个的用法和其它C语法类的语言相同

复制代码 代码如下:
for i in range(10):
    if 2==i: continue #结束当前循环,进入下一步循环
    if 6==i: break #跳出循环
    print i
结果为:
0
1
3
4
5

2.5. while / pass
while True:
    pass #什么也不做

2.6. is
用来比较两个变量是否指向同一内存地址(也就是两个变量是否等价) 而 == 是用来比较两个变量是否逻辑相等

复制代码 代码如下:
a = [1,2]
b = [1,2]
>>> a is b
False
>>> a == b
True

2.7. del

用于删除元素

复制代码 代码如下:
a=[1,2,3,4,5,6]
del a[0]
a
>>>[2,3,4,5,6]

del a[2:4]
a
>>>[2,3,6]
del a[:]
a
>>>[]

del a
a
#抛出异常
>>>NameError: name 'a' is not defined

2.8. try ... except ... finally / raise

用于异常处理

复制代码 代码如下:
try:
    x=int(raw_input("请输入数字:"))
except ValueError: #可以同时捕获多个异常,写法如except(RuntimeError,ValueError):
    print "您输入不是数字" #当输入非数字时
except: #省略异常名,可以匹配所有异常,慎用
    pass
else: #当没有异常时
    print 'result=', x
finally: #和Java中类似。一般用于释放资源,如文件,网络连接。
   print 'finish'

raise用于抛出异常,可以为自定义的异常类

这里需要特别注意的是 try 语句内部不应该有完成某个操作的语法,而是需要写在
else: 后面,这和其它语言是很不同的,例如在 try 后面写个 print 它是不会显示任何东西的。

惯例是以Error结尾的类,同类的异常一般派生自同一个基类(如Exception)

复制代码 代码如下:
class MyError(Exception):
    def __init__(self,value):
        self.value=value
    def __str__(self):
        return reper(self.value)

基类异常可以匹配派生类异常

复制代码 代码如下:
try:
    raise Exception("spam","egg")
except Exception,inst: #inst为该异常类的实例,为可选项
    print type(inst) #异常的类型
    print inst

2.9 函数的定义

def 函数名(参数列表):
    函数代码
    return 返回值(可选)

复制代码 代码如下:
def get_arr(arr):
    arr.insert(0, 'aaa')
    return arr

arr = ['1','2','3']
new_arr = get_arr(arr)
print new_arr 

结果为:['aaa', '1','2','3']

默认参数:
其中在后面的参数,允许初始化一个默认值,如:def myfunc(a, b=0, c='aaa') :

参数关键字:
python的函数还有一个变态的使用方法,就是调用时可以不按参数顺序,而是直接用 key=value这样的键值对表示参数,如:
myfunc(c='ggggg', a=0)

可变参数:
用 *key 表示,也是必须在参数表未尾
如:

复制代码 代码如下:
def fprintf(file, format, *args):
    file.write(format % args)

关于类和包的定义,在第三章会专门介绍,这里先不作说明。

3、附注——Python的运算符

运算符 名称 说明 例子
+ 两个对象相加 3 + 5得到8。'a' + 'b'得到'ab'。
- 得到负数或是一个数减去另一个数 -5.2得到一个负数。50 - 24得到26。
* 两个数相乘或是返回一个被重复若干次 的字符串 2 * 3得到6。'la' * 3得到'lalala'。
**

返回x的y次幂

3 ** 4得到81(即3 * 3 * 3 * 3)
/ x除以y 4/3得到1(整数的除法得到整数结 果)。4.0/3或4/3.0得到1.3333333333333333
// 取整除 返回商的整数部分 4 // 3.0得到1.0
% 取模 返回除法的余数 8%3得到2。-25.5%2.25 得到1.5
左移 把一个数的比特向左移一定数目(每个 数在内存中都表示为比特或二进制数字,即0和1) 2
>> 右移 把一个数的比特向右移一定数目 11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。
& 按位与 数的按位与 5 & 3得到1。
| 按位或 数的按位或 5 | 3得到7。
^ 按位异或 数的按位异或 5 ^ 3得到6
~ 按位翻转 x的按位翻转是-(x+1) ~5得到6。
小于 返回x是否小于y。所有比较运算符返 回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 5
> 大于 返回x是否大于y 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。
小于等于 返回x是否小于等于y x = 3; y = 6; x
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比较对象是否相等 x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等于 比较两个对象是否不相等 x = 2; y = 3; x != y返回True。
not 布尔“非” 如果x为True,返回False。 如果x为False,它返回True。 x = True; not y返回False。
and 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值。 x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象 称为短路计算。
or 布尔“或” 如果x是True,它返回True, 否则它返回y的计算值。 x = True; y = False; x or y返回True。短路计算在这里也适用。

 

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La vitesse de conversion est-elle rapide lors de la conversion du XML en PDF sur le téléphone mobile? La vitesse de conversion est-elle rapide lors de la conversion du XML en PDF sur le téléphone mobile? Apr 02, 2025 pm 10:09 PM

La vitesse du XML mobile à PDF dépend des facteurs suivants: la complexité de la structure XML. Méthode de conversion de configuration du matériel mobile (bibliothèque, algorithme) Méthodes d'optimisation de la qualité du code (sélectionnez des bibliothèques efficaces, optimiser les algorithmes, les données de cache et utiliser le multi-threading). Dans l'ensemble, il n'y a pas de réponse absolue et elle doit être optimisée en fonction de la situation spécifique.

Comment convertir les fichiers XML en PDF sur votre téléphone? Comment convertir les fichiers XML en PDF sur votre téléphone? Apr 02, 2025 pm 10:12 PM

Il est impossible de terminer la conversion XML à PDF directement sur votre téléphone avec une seule application. Il est nécessaire d'utiliser les services cloud, qui peuvent être réalisés via deux étapes: 1. Convertir XML en PDF dans le cloud, 2. Accédez ou téléchargez le fichier PDF converti sur le téléphone mobile.

Quelle est la fonction de la somme du langage C? Quelle est la fonction de la somme du langage C? Apr 03, 2025 pm 02:21 PM

Il n'y a pas de fonction de somme intégrée dans le langage C, il doit donc être écrit par vous-même. La somme peut être obtenue en traversant le tableau et en accumulant des éléments: Version de boucle: la somme est calculée à l'aide de la longueur de boucle et du tableau. Version du pointeur: Utilisez des pointeurs pour pointer des éléments de tableau, et un résumé efficace est réalisé grâce à des pointeurs d'auto-incitation. Allouer dynamiquement la version du tableau: allouer dynamiquement les tableaux et gérer la mémoire vous-même, en veillant à ce que la mémoire allouée soit libérée pour empêcher les fuites de mémoire.

Comment convertir XML en images Comment convertir XML en images Apr 03, 2025 am 07:39 AM

XML peut être converti en images en utilisant un convertisseur XSLT ou une bibliothèque d'images. Convertisseur XSLT: Utilisez un processeur XSLT et une feuille de style pour convertir XML en images. Bibliothèque d'images: utilisez des bibliothèques telles que PIL ou ImageMagick pour créer des images à partir de données XML, telles que des formes de dessin et du texte.

Existe-t-il une application mobile qui peut convertir XML en PDF? Existe-t-il une application mobile qui peut convertir XML en PDF? Apr 02, 2025 pm 09:45 PM

Il n'y a pas d'application qui peut convertir tous les fichiers XML en PDF car la structure XML est flexible et diversifiée. Le noyau de XML à PDF est de convertir la structure des données en une disposition de page, ce qui nécessite l'analyse du XML et la génération de PDF. Les méthodes courantes incluent l'analyse de XML à l'aide de bibliothèques Python telles que ElementTree et la génération de PDF à l'aide de la bibliothèque ReportLab. Pour le XML complexe, il peut être nécessaire d'utiliser des structures de transformation XSLT. Lorsque vous optimisez les performances, envisagez d'utiliser multithread ou multiprocesses et sélectionnez la bibliothèque appropriée.

Outil de mise en forme XML recommandé Outil de mise en forme XML recommandé Apr 02, 2025 pm 09:03 PM

Les outils de mise en forme XML peuvent taper le code en fonction des règles pour améliorer la lisibilité et la compréhension. Lors de la sélection d'un outil, faites attention aux capacités de personnalisation, en gérant des circonstances spéciales, des performances et de la facilité d'utilisation. Les types d'outils couramment utilisés incluent des outils en ligne, des plug-ins IDE et des outils de ligne de commande.

Comment convertir XML en PDF sur votre téléphone avec une qualité de haute qualité? Comment convertir XML en PDF sur votre téléphone avec une qualité de haute qualité? Apr 02, 2025 pm 09:48 PM

Convertir XML en PDF avec une qualité de haute qualité sur votre téléphone mobile nécessite: analyser le XML dans le cloud et générer des PDF à l'aide d'une plate-forme informatique sans serveur. Choisissez un analyseur XML efficace et une bibliothèque de génération PDF. Gérer correctement les erreurs. Faites une utilisation complète de la puissance de cloud computing pour éviter les tâches lourdes sur votre téléphone. Ajustez la complexité en fonction des exigences, notamment le traitement des structures XML complexes, la génération de PDF de plusieurs pages et l'ajout d'images. Imprimez les informations du journal pour aider à déboguer. Optimiser les performances, sélectionner des analyseurs efficaces et des bibliothèques PDF et peut utiliser une programmation asynchrone ou des données XML prétraitées. Assurez-vous une bonne qualité de code et maintenabilité.

Comment convertir XML en PDF sur Android Phone? Comment convertir XML en PDF sur Android Phone? Apr 02, 2025 pm 09:51 PM

La conversion de XML en PDF directement sur les téléphones Android ne peut pas être réalisée via les fonctionnalités intégrées. Vous devez enregistrer le pays via les étapes suivantes: Convertir les données XML en formats reconnus par le générateur PDF (tels que le texte ou le HTML); Convertissez HTML en PDF à l'aide de bibliothèques de génération HTML telles que Flying Saucer.

See all articles