python 入门
来源:互联网 发布:c 并发编程实战 pdf 编辑:程序博客网 时间:2024/06/16 16:14
python入门
由于脚本语言的缺失,花一点时间来学习一下python。
- python语言的一些特性(入门级需要了解的一些语言特点)
- 首先来一个简单的python脚本解解渴(hello world勿喷)
- 一些语法上面的详细说明
- 总结
python 语言的一些特性
Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。
Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。
Python代码块使用空格或制表符缩进的方式分隔代码。
Python仅有31个保留字,而且没有分号、begin、end等标记。
Python是强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换。
个人觉得,python相对于c/c++更简单了。
hello world, i am python!
hello.py
if __name__ == '__main__': # 用来判断是否是直接执行该文件print 'hello world, i am python!' # 这个就不需要解释了
运行:
python ./hello.py
语法上的一些详细的说明
- 注释
#加上一个空格 就是注释的格式
然而#! /usr/bin/python,并不是为了注释,这段code是用来指定用什么样的解释器来解释代码,以及该解释器的位置- py的文件类型
.py—->经过python解释器—–>.pyc(不能直接用文本编辑器修改)
.py—->经过优化 —->.pyo (不能直接用文本编辑器修改)变量
- python中的变量不需要声明,变量的赋值操作即使变量声明和定义的过程。
- python中一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识并不相同。
- 如果变量没有赋值,则python认为该变量不存在。
- 在函数之外定义的变量都可以称为全局变量。全局变量可以被文件内部的任何函数和外部文件访问。
- 全局变量建议在文件的开头定义。
- 也可以把全局变量放到一个专门的文件中,然后通过import来引用。
globle.py_a = 1_b = 2usepython.pyimport globle.pyprint globle._aprint globle._b # 可以运行成功
数据类型
- python的数字类型分为整型、长整型、浮点型、布尔型、复数类型。
- python没有字符类型,但是阻挡不了有字符串类型。
3.python内部没有普通类型,任何类型都是对象。- 如果需要查看变量的类型,可以使用type类,该类可以返回变量的类型或创建一个新的类型。
- python有3种表示字符串类型的方式,即单引号、双引号、三引号。单引号和双引号的作用是相同的。python程序员更喜欢用单引号。C/Java程序员则习惯使用双引号表示字符串。三引号中可以输入单引号、双引号或换行等字符。转义字符的输出。
- 运算符和表达式
- python不支持自增运算符和自减运算符。例如i++/i–是错误的,但i+=1是可以的。
- 1/2在python2.5之前会等于0.5,在python2.5之后会等于0。
- 不等于为!=或<>。
- 等于用==表示。
- 逻辑表达式中and表示逻辑与,or表示逻辑或,not表示逻辑非。
控制语句
条件语句:
if (表达式) : 语句1 else : 语句2
条件语句:
if (表达式) : 语句1 elif (表达式) : 语句2 … elif (表达式) : 语句n else : 语句m
条件嵌套:
if (表达式1) : # first if (表达式2) : # second 语句1 elif (表达式3) : #second语句2 … else: #second语句3 elif (表达式n) : # first … else : # first…
python本身没有switch语句。
循环语句:
while(表达式) : … else : …
循环语句:
for 变量 in 集合 : … else : …
python不支持类似c的for(i=0;i<5;i++)这样的循环语句,但可以借助range模拟:
for x in range(0,5,2): # 从0 开始 每次+2,小于5print x
数组相关
元组(tuple):python中一种内置的数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字甚至元素。元组是写保护的,即元组创建之后不能再修改。元组往往代表一行数据,而元组中的元素代表不同的数据项。可以把元组看做不可修改的数组。创建元组示例如下:
tuple_name=(“apple”,”banana”,”grape”,”orange”)
列表(list):列表和元组相似,也由一组元素组成,列表可以实现添加、删除和查找操作,元素的值可以被修改。列表是传统意义上的数组。列表创建示例如下:
list=[“apple”,”banana”,”grage”,”orange”]
可以使用append方法来在尾部追加元素,使用remove来删除元素。
字典(dictionary):由键-值对组成的集合,字典中的值通过键来引用。键和值之间用冒号隔开,键-值对之间用逗号隔开,并且被包含在一对花括号中。创建示例如下:
dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}
序列:序列是具有索引和切片能力的集合。元组、列表和字符串都属于序列。
函数相关
- python程序由包(package)、模块(module)和函数组成。包是由一系列模块组成的集合。模块是处理某一类问题的函数和类的集合。
- 包就是一个完成特定任务的工具箱。
- 包必须含有一个init.py文件,它用于标识当前文件夹是一个包。
- python的程序是由一个个模块组成的。模块把一组相关的函数或代码组织到一个文件中,一个文件即是一个模块。模块由代码、函数和类组成。导入模块使用import语句。
- 包的作用是实现程序的重用。
函数是一段可以重复多次调用的代码,函数定义示例如下:
def arithmetic(x,y,operator): result={ “+”:x+y, “-“:x-y, “*”:x*y, “/”:x/y }
函数返回值可以用return来控制。
字符串相关
格式化输出:
format=”%s%d” % (str1,num) print format
用+进行字符串的合并:
str1=”hello” str2=”world” result=str1+str2
字符串截取可以通过索引/切片,也可以通过split函数。
word=”world” print word[0:3] # 索引切片
python使用==和!=来进行字符串比较。如果比较的两个变量的类型不相同,那么结果必然为不同。
文件处理
简单处理文件:
context=”hello,world” f=file(“hello.txt”,’w’) f.write(context); f.close()
读取文件可以使用readline()函数、readlines()函数和read函数。
- 写入文件可以使用write()、writelines()函数
对象和类
python用class保留字来定义一个类,类名的首字符要大写。当程序员需要创建的类型不能用简单类型来表示时,就需要定义类,然后利用定义的类创建对象。定义类示例:
class Fruit: def grow(self): print “Fruit grow”
当一个对象被创建后,包含了三方面的特性,即对象的句柄、属性和方法。创建对象的方法:
fruit = Fruit() fruit.grow()
python没有保护类型的修饰符
- 类的方法也分为公有方法和私有方法。私有函数不能被该类之外的函数调用,私有的方法也不能被外部的类或函数调用。
- python使用函数”staticmethod()“或”@ staticmethod“指令的方法把普通的函数转换为静态方法。静态方法相当于全局函数。
- python的构造函数名为init,析构函数名为del
- 继承的使用方法:
class Apple(Fruit): # Apple 继承于Fruit def …
总结
python的话,对于基本的语句就这些吧,如果能想要熟练的应用,那么还是需要更多的使用。
ps:文章大部分引用于: http://developer.51cto.com/art/201207/347006.htmt
- Python入门
- python入门
- Python入门
- Python入门
- Python入门
- Python入门
- python入门
- Python入门
- Python 入门
- Python入门
- python入门
- Python入门
- python入门
- python入门
- Python入门
- python 入门
- python入门
- python入门
- ggsci命令提示符中看不到的OGG进程
- xcorr 自相关 c++实现
- Java远程执行Linux命令
- 同时安装VS2010 + Qt4.8.6 + Qt Add-in 和VS2008 + Qt4.8.6 + Qt Add-in
- 使用maven构建android项目
- python 入门
- 【Hadoop】1、Hadoop开山篇之虚拟机下ubuntu安装jdk1.7
- structs2基本程序创建
- logcat命令行输出tag为Mylistview,日志级别为info,以及多个tag的写法
- 面向对象杂想:
- arduino五天小结
- 非递归实现归并排序算法
- 详细介绍Java中的堆、栈和常量池
- 【Android】AlertDalog对话框