Python 学习#1 搭建开发调试环境&基本代码编写

本系列文章以《Python核心编程》第二版、第三版为基础,记录python学习。
基础篇:
1. 搭建开发调试环境&基本代码编写
2. 基本语法定义&内建数据类型概览
3. 数值对象及其使用
4. 容器对象及其使用
5. 字符串的使用
6. 分支和循环结构
7. 函数与函数式编程
8. 异常处理机制
9. 面向对象编程
10. 模块

关于Python

什么是Python

相比于传统的C语言等编译型语言,python为解释型语言,更加简洁、可读性更高。

  • 编译型语言C、C++、Objective-C(http://c.biancheng.net/view/4136.html):一次性翻译为可被平台硬件执行的机器语言),编译生成的程序可以脱离开发环境,在特定的平台上独立运行,所以通常运行效率较高。如果需要移植,则需要针对特定平台进行修改。
  • 解释型语言:使用专门的解释器,将源程序逐行解释成特定平台的机器码并立即执行。相比于编译型语言,跨平台更容易,可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价。

与Unix操作系统下的shell script相比,shell脚本可以用来处理简单的任务,但功能不足。并且shell脚本的代码重复度很低,因此无法进行大规模的开发。而python提倡简洁的代码设计、高级的数据结构和模块化的组件。

python的标准实现是由C语言完成的,由于C的可移植性,所以python可以运行在任何带有ANSI C编译器的平台上。

python的健壮性针对错误异常,python程序由于错误崩溃时,解释程序就会转出一个“堆栈跟踪”,里面会包括程序崩溃的原因以及该段代码。

Python的安装:
  • windows平台直接前往python官网(https://www.python.org/)下载,在安装过程中勾选添加环境变量选项,将会自动设置好环境变量。
  • mac、linux平台通常自带python2.7,可以通过终端python指令查看版本,之后更新或安装在此不多讨论。
第一个Helloworld

python的运行通常有三种方式:

  • 交互式启动解释器:即python shell,每次输入一行python代码后执行。
  • 运行python脚本。
  • 通过pycharm(推荐),vscode等开发工具运行,在此推荐pycharm,免费版教程百度都有。
    pycharm创建新project后,创建.py文件,输入代码并在上方run菜单中run运行代码
print("hello world")

Python快速入门

程序输入输出
  • 程序输出:print
    • 与C语言中的printf相似,python中的print同样可以使用字符串格式运算符(%),可实现字符串替换的功能
  • 程序输入:raw_input
    • user = raw_input('enter login name: ')
    • 需要注意的是在python3中raw_input函数已经被替换为input
      在对于函数有疑问时,可以在shell中使用help()函数得到相应的函数信息。
运算符

与其他大多数编程语言相似,只是新增了乘方运算符**。
对于逻辑运算符,python直接支持and、or、not。

数字类型

int
long
bool
float
complex
对于目前python,整形与长整型逐步统一为一种数据类型,从python2.3开始就不再有整形溢出的错误

字符串

python中字符串被定义为引号之间的字符集合,python支持使用单引号与双引号、三引号(三个连续的单引号或双引号)。使用索引运算符[]和切片运算符[:]可以得到子串,字符串中第一个字符索引是0,最后一个是1。
+可以用于字符串连接,*可以用于字符串重复

pystr = 'python'
print(pystr[2:5]) #tho
列表和元组

这两者都可以被当做普通的数组,能保存任意数量任意类型的python对象,两者之间重要的区别包括:

  • 列表元素使用中括号([ ])包裹,元素的个数以及元素的值可以改变。
  • 元组使用括号(())包裹,不可更改。元组可以看做是只读的列表,可以通过切片运算得到子集,与字符串类似。
字典

字典是Python中的映射数据类型,工作原理类似哈希表,有key-value组成,字典元素有大括号包括{‘NAME’: Tao}

条件语句与循环
if expression:
	expression

if exp1:
	...
else:
	...

if exp1:
	...
elif exp2:
	...

while exp:
	...

for i in l:
	...
for i in range():
	...

#列表解析:可以用一行将for循环的所有值放入一个列表中
squared = [x**2 for x in range(0,4)]
文件和内建函数open()、file()
  • 打开文件open():第一个参数表示锁要打开的文件名称,第二位设置打开模式r、w、a。如果open成功,一个文件对象的句柄将会被返回,所有后续的文件操作都必须通过这个句柄。
handle = open(file_name, access_mode='r')
for line in handle:
	print(line)
handle.close()
错误与异常

python在编译时会检查语法错误,但有些错误需要在运行过程中检测。当检测到一个错误时,python解释器会引发一个异常,并显示出异常的详细信息。异常处理操作被封装在try-except语句中,try中的代码是需要检测的代码,except中的代码则是处理错误的代码。

函数与类

python中函数调用与其他语言相同,函数在调用之前需要先定义,如果函数中没有return语句,则会返回None对象。
函数的参数可以有默认值,如果提供有默认值,在函数定义中,参数以赋值语句的形式提供。

def func(debug=True):

class ClassName(base_class):

类是面向对象编程的核心,他扮演相关数据及逻辑的容器角色。
如果没有合适的基类,可以用object作为基类。

class foo(object):
    version=0.1
    def __init__(self,nm='john snow'):
        self.name=nm
        print('create a class instance for '+nm)
    def showname(self):
        print('your name is '+ self.name)
        print('my name is'+ self.__class__.__name__)
    def showver(self):
        print(self.version)
    def addMe2Me(self,x):
        return x+x
# 创建类实例对象
fool=foo()
fool.showname()

在上面的类中,首先定义了静态变量version,它将被类的所有实例以及四个函数方法共享。
init()函数是一个特殊函数,当一个类实例被创建时,该函数会自动执行,在类实例创建完毕后执行,但与C++中的构造函数不同的是,init不会创建实例,它是实例对象创建后执行的第一个函数。
上述的函数参数中都有一个默认参数self,它是类实例自身的引用,类似于C++中的this指针。

模块

模块是一种组织形式,它将彼此有关系的python代码组织到一个个独立文件当中。
模块可以包含可执行代码,函数,类。一个模块创建后,就可以在另一个模块中使用import引入。

import module_name
module.function()
module.variable

PEP:Python增强提案(Python Enhancement Proposal),在新版python中增加新特性的方式,后续章节详细讨论。

一些常用基础函数
int(obj)	# 转int
len(obj)
range(start,stop)
str(obj)	#转string
type(obj)	#返回对象obj的类型(返回值本身是一个type对象)

下一章节将讨论python中的基本语法定义以及内建数据类型,链接:第二章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值