python入门指南

python入门指南

python是一门简单易学且功能强大的编程语言。它拥有高效的高级数据结构,并且能够简单而又高效的方式进行面向对象编程。

python是一门解释性语言,因为无需编译和链接,在开发中节省时间。

使用python解释器

调用python解释器

python解释器通常被安装在目标机器的/user/local/bin/python3.4目录下,将/user/local/bin目录包含进Unix shell的搜索路径里,以确保可以通过输入:python3.4 命令来启动它。

在windows机器上,python通常安装在c:\python3.4位置,你可以在运行安装向导时修改此值。想要把此目录添加到你的PATH环境变量中,你可以在DOS窗口中输入以下命令:

set path=%path%;c:\ptrhon33

由于python语句通常会包含空格或其他特殊shell字符,一般建议将命令用单引号包裹起来。

参数传递

解释器会读取命令行参数,转化为字符串列表存入sys模块中的argv变量中。执行命令import sys你可以导入这个模块并访问这个列表。

交互模式

在交互模式下,根据主提示符来执行,主提示符通常标识为三个大于号(>>>),继续的部分被称为从属提示符,有三个点标识(…)。在第一行之前,解释器打印欢迎信息,版本和授权提示:

解释器及其环境

错误处理

在主提示符或附属提示符输入中断符(通常时ctrl+C或者DEL)就会取消当前输入,回到主命令行。执行命令时输入一个中断符会抛出一个keyboardInterrupt异常,它可以被try语句截获。

执行pthon脚本

python脚本可以像shell脚本那样执行,只要在脚本文件开头写一行命令,指定文件和模式。

#!/user/bin/evn python3.3

(要确认python解释器在用户的PATH中)

脚本可以通过chmod命令指定执行模式和权限

$ chmod +x myscript.py
源程序编码

默认情况下,python源文件是UTF-8编码。

你也可以为源文件指定不同的字符编码。为此,在#!行(首行)后插入至少一行特殊的注释行来定义源文件的编码

# -*- coding:encoding -*-

通过此声明,源文件中所有的东西都会被当作用encoding指代的UTF-8编码对待。

交互执行文件

你可以在一个文件中包含你想要执行的命令,设定一个名为PYTHONSTARTUP的环境变量来指定这个文件。

如果你想要在当前的目录中执行附加的启动文件,可以在全局启动文件中加入类似以下的代码:

if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')

如果你想要在某个脚本中使用启动文件,必须要在脚本中写入这样的语句:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    exec(open(filename).read())
本地化模块

python提供了两个钩子(方法)来本地化:sitecustomize和usercustomize。为了见识他们,你首先需要找到你的site-packages的目录,启动python执行下面的代码:

import site
site.getusersitepackages()
'C:\\Users\\86159\\AppData\\Roaming\\Python\\Python36\\site-packages'

python简介

将python当做计算器

数字

解释器的表示就像一个简单的计算器:可以向其录入一些表达式,它会给出返回值。表达式语法很直白:运算符+,-,*,/,与其他语言一样,:括号用于分组。

注意:有时你可能会得到不同的结果:浮点数在不同机器上的运算结果可能是不同的。

对整数做除法运算并想去除小数部分取得整数结果时,可以使用另外一个运算符, //:

等号(’=’)用于给变量赋值。一个值可以同时赋值给几个变量。变量在使用前必须"定义"(赋值),否则会出错。

浮点数有完整的支持:与整型混合计算时会自动转为浮点数。

字符串

python也提供了可以通过几种不同的方式传递的字符串。他们可以用单引号或双引号标识。

字符串文本有几种方法分行。可以使用反斜杠为行结尾的连续字符串,它表示下一行在逻辑上是本行的后续内容。

字符串文本有几种分行的方法。可以使用反斜杠为行结尾的连续字符串,它表示下一行在逻辑上是本行的后续内容。

字符串可以标识在一对儿三引号中。不需要行属转义,它们已经包含在字符串中。

字符串可以由+操作符连接(粘到一起),可以由*重复。

字符串可以被截取(检索)可以用切片标注法截取字符串:由两个索引分割的复本。

索引切片可以有默认值,切片时,忽略第一个索引的话,默认为0,忽略第二个索引,默认为字符串的长度。

python字符串不可变。向字符串文本的某一个索引赋值会引发错误:

关于Unicode

如果想在字符串中包含特殊字符,你可以使用python的Unicode的编码方式。

>>> 'Hello\u0020World!'
'Hello World!'

转码序列\u0020表示在指定位置插入编码为0x0020的Unicode字符(空格)

字符串对象提供了一个encode()方法用以将字符串转换成特定编码的字节序列,它接收一个小写的编码名称作为参数。

>>> "Apfel".encode('utf-8')
b'Apfel'
列表

列表可以用作中括号之间的一列逗号分隔的值。列表的元素不必是同一类型。

就像字符串索引,列表的元素不必是同一类型。

像字符串索引,列表从0开始检索,列表可以被切片和连接:

所有的切片操作都会返回新的列表,包含求得的元素,这意味着以下的切片操作返回列表a的一个浅拷贝的副本。

列表允许修改元素,可变,也可以对切片赋值。
编程的第一步

写一个生成斐波那契数列的程序

>>> a,b=0,1
>>> while b<10:
...     print(b)
...     a,b=b,a+b
...
1
1
2
3
5
8

用一个都好结尾就可以禁止输出换行:

>>> a,b=0,1
>>> while b<1000:
...     print(b,end=',')
...     a,b=b,a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,>>>

深入python流程控制

if语句
if ...elif...elif...序列用于替代其他语言中的switch或case语句

x = int(input("请输入数字:"))
if x < 0:
    print('zero')
elif x == 0:
    print('one')
elif x == 1:
    print('two')
else:
    print('three')
for语句

在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改迭代的序列,你可以迭代他的复本。使用切割标识就可以很方便的做到这一点。

>>> a = ['wer','ertb','tytyjjj']
>>> for x in a[:]:
...     print(x)
...     if len(x)>6:
...             a.insert(0,x)
...
wer
ertb
tytyjjj
range函数

内置函数range()会很方便,生成一个等差级数链表

需要迭代链表索引,结合使用range()和len()或者enumerate()

在不同方面range()函数返回的对象表现为一个列表,但事实上它并不是。当你迭代它时,它是一个能够像期望的序列返回连续项的对象;但为了节省空间,它并不是真正的构造列表。

list(range(5))
[0,1,2,3,4]
break和continue语句,以及循环中的else子句

break语句,用于跳出最近的一级for或while循环

循环可以有一个else字句,它在循环迭代完整个列表(对于for)或执行条件为false(对于while)时执行,但循环为break中止的情况下不会执行,

for n in range(2, 10):
    for x in rang
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值