Python-基础-入门 简介


Posted in Python onAugust 09, 2014

Python简介及入门

python
为什么是python

选择自己喜欢的语言,这往往不容易,更多的是根据需求

话说,之前是java,大学用了三年+实习半年,后来入职做测试开发后,碰到了python

到最后,转python开发了

写起来快,缩进,不用打花括号,省手指,读起来舒服…..

喜欢,貌似不需要什么太牛的理由,用着顺手舒服就行

什么语言之争,编辑器之战啥的,能忽略就忽略吧,能无视就无视吧,工具,够用,用这舒服就ok了,浪费口水精力争来争去图个啥呢

Life is short, I use python!

简介

python介绍: 到官网自个看

有兴趣可以看看: 解释性语言+动态类型语言+强类型语言

优点缺点: 自己google

国际惯例

交互模式:(主要拿来试验,可以试试 ipython 支持tab自动补全)

$python
>>> print 'hello world'

脚本

#!/usr/bin/env python
print 'hello world'

环境及其他
基本安装: 自己google[安装和配置一搜一大把,基本技能,不解释,貌似很久之前我也写了一篇http://blog.csdn.net/wklken/article/details/6311292

环境:

建议python2.7 + easy_install + pip + virtualenv + ipython
开发工具:

vim/sublimetext2/eclipse+pydev/pycharm
建议初学idle或者pydev吧,用着顺手就行,
关于编码风格:

谷歌的:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
中文: http://www.bsdmap.com/articles/zh-google-python-style-guide/
--------------------------------------------------------------------------------

入门
不扯,开始

缩进
Python 函数没有明显的 begin 和 end,没有标明函数的开始和结束的花括号。唯一的分隔符是一个冒号 (:),接着代码本身是缩进的。

例子:

#函数
def func(value):
    print value  #缩进
    if value == 1:
        value += 1
    elif value == 2:
        pass
    else:
        value += 10

标识符
变量是标识符的例子。 标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循这些规则:

1.python中的标识符是区分大小写的。

2.标示符以字母或下划线开头,可包括字母,下划线和数字,大小写敏感

3.以下划线开头的标识符是有特殊意义的。

•以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;
•以双下划线开头的(__foo)代表类的私有成员;
•以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
4.标识符不能是保留字

and            elif        global   or    yield
assert         else        if       pass
break          except      import   print
class          exec        in       raise
continue       finally     is       return
def            for         lambda   try
del            from        not      while
变量
赋值语句

•赋值语句建立对象引用值
•变量名在首次赋值时会被建立
•变量名在引用前必须先赋值,不能引用未声明赋值的变量
赋值方式

•简单赋值
Variable(变量)=Value(值)

s = ‘spam'
•多变量赋值
python中原始的元组和列表赋值语句形成,最后已被通用化,以接受右侧可以是是任何类型的序列,只要长度相等即可。注意,长度一定相等

Variable1,variable2,...=Value1,Value2,...

s,h = ‘a','b'  元组赋值,位置性  【常用】
[s,h] =[‘a','b'] 列表赋值,位置性
a,b,c,d = ‘spam' 序列赋值,通用性
a,*b = ‘spam' 拓展序列解包(python3)

•多目标赋值

a=b=variable

s = h = ‘spam' 多目标赋值
注意:多个变量内存中指向同一对象,对于可变类型需要,修改一个会对其他造成影响

•自变赋值
如+=,-=,*=等。

在自变赋值中,python仅计算一次,而普通写法需计算两次;

自变赋值会修改原始对象,而不是创建一个新对象。

s +=42 增强赋值
x += y
优点:

程序员输入更少

左侧只需计算一次,优化技术自动原处修改,更快
l +=[] 原处修改
l = l+[] 复制,生成新的对象
运算符
一个表达式可以分解为运算符和操作数

运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示

运算符需要数据来进行运算,这样的数据被称为 操作数

运算符优先顺序列表(从最高到最低)

运算符 描述

'expr'  字符串转换
{key:expr,...}  字典
[expr1,expr2...]    列表
(expr1,expr2,...)   元组
function(expr,...)  函数调用
x[index:index]  切片
x[index]    下标索引取值
x.attribute 属性引用
~x  按位取反
+x,-x   正,负
x**y    幂
x*y,x/y,x%y 乘,除,取模
x+y,x-y 加,减
x<<y,x>>y   移位
x&y 按位与
x^y 按位异或
x|y 按位或
x<y,x<=y,x==y,x!=y,x>=y,x>y 比较
x is y,x is not y   等同测试
x in y,x not in y   成员判断
not x   逻辑否
x and y 逻辑与
x or y  逻辑或
lambda arg,...:expr Lambda匿名函数
结合规律

运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算

计算顺序

默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。好的做法:默认对复杂的运算加括号,而不是依赖于默认结合和计算顺序

真值
真值测试
•任何非零数字或非空对象都为真
•数字零,空对象以及特殊对象None都为假
•比较和相等测试都会递归地运用到数据结构中
•比较和相等测试会返回True或False
真值表

对象/常量 值 
"" 假 
"string" 真 
0 假 
2>=1 真 
-2<=-1 真 
()空元组 假 
[]空列表 假 
{}空字典 假 
None 假

布尔表达式
三种布尔表达式运算符

x and y 
x or y 
not x

比较
•数字通过相对大小进行比较
•字符串时按照字典顺序的,一个字符一个字符比较
•列表和元组从左到右对每部分的内容进行比较
•字典通过排序后的键值列表进行比较
•数字混合类型比较在python3是错误的,但是python2.6支持,固定但任意的排序规则
布尔数
•有两个永远不改变的值True,False
•布尔是整型的子类,但不能被再继承
•没有__nonzero__()方法的对象的默认值是True
•对于值为0的任何数字或空集,值False
•在数学运算中,Bollean值的True和False分别对应于1和0
基本控制流
if
基本的条件测试语句,用来判断可能遇到的不同情况,并针对不同的情况进行操作

基本形式

if <条件>:
   <语句>
elif <条件>:
   <语句>
else:
   <语句>

注意

python根据缩进判断, elif和else部分是可选的

例子:

a = 1
b = 2
c = 3;d=4 #两个放一句用分号隔开,不过建议分行
if a < b and c < d:
    print("branch a")
elif a == b:
    print("branch b")
else:
    print("branch c")
switch

python 本身没有 switch 语句,若需要,用if/elif/else实现完成同样的工作,某些情况可以考虑用字典

也可以用dict的形式

if/else三元运算符

A = ((X and Y) or Z)
A = Y  if X else Z
例: a = ‘t' if x else ‘a'
for
•基本语法
循环控制语句,可以用于循环遍历某一序列

else块可选,在循环终止的时候执行,若是break终止循环,else不执行

格式:

for <对象变量> in <对象集合>: 
if<条件>: 
break 
if<条件>: 
continue 
<其他语句> 
else: 
<其他语句>

注意:

1.对象集合可以是列表,字典以及元组等
2.for..in循环对于任何序列都适用
3.for遍历一个字典时,遍历的是字典的键
•rang & xrange
可以通过range()函数产生一个整数列表,完成计数循环

range([start,] stop[, step])

start可选参数,起始数
stop终止数,若为x,产生从0-(x-1)的整数列表
step可选参数,步长,未写默认为1
range(1,5) 包含序列为 [1,2,3,4]

xrange和range区别

(python3.x的可无视)

在Range的方法中,它会生成一个list的对象,但是在XRange中,它生成的却是一个xrange的对象,当返回的东西不是很大的时候,或者在一个循环里,基本上都是从头查到底的情况下,这两个方法的效率差不多。但是,当返回的东西很大,或者循环中常常会被Break出来的话,还是建议使用XRange,这样既省空间,又会提高效率。

>>> print range(1, 5) 
[1, 2, 3, 4] 
>>> print xrange(1, 5) 
xrange(1, 5)

在上面语句中,range返回了一个普通List,而xrange返回了一个特定的xrange类型的对象。由于 xrange 方法也创建整数 list(其使用相同参数),所以它与 range 方法非常相似。但是,xrange 方法仅在需要时才在 list 中创建整数。当需要迭代大量整数时,xrange 方法更适用,因为它不会创建极大的 list,那样会消耗大量计算机内存。

while
与if语句类似,含一个条件测试语句,循环,允许重复执行一个语句块。

可选else语句块,同for的else块。

格式:

while <条件>:
   if <条件>:
      break
   if <条件>:
      continue
   <其他语句>
else:
   <语句>

说明:

•while循环条件变为False的时候,else块才被执行
•若是使用break结束循环,while可选的else块不执行
•python没有do while或do until循环语句
break & continue & pass
break,终止循环语句,停止循环,若是for/while循环中终止,其else不执行

continue,结束当前,进入下一轮循环 - 跳到最近所在循环的开头处(来到循环首行)

pass 什么事也不做,只是空占位语句,它用于那些语法上必须要有什么语句,但程序什么也不做的场合

循环else块 :只有循环正常离开时才会执行,即

如果你从for或while循环中break终止 ,任何对应的循环else块将不执行。记住,break语句也可以在for循环中使用

其他
编写循环的技巧:
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便的做到这一点

>>> for x in a[:]: # make a slice copy of the entire list
...    if len(x) > 6: a.insert(0, x)

在字典中循环时,关键字和对应的值可以使用 iteritems() 方法同时解读出来

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.iteritems():
...     print k, v
...
gallahad the pure
robin the brave

在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到。

>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...     print i, v
Python 相关文章推荐
Python数据结构之Array用法实例
Oct 09 Python
Python MySQLdb Linux下安装笔记
May 09 Python
详解python中的文件与目录操作
Jul 11 Python
Python实现的rsa加密算法详解
Jan 24 Python
简单实现python聊天程序
Apr 01 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
Python获取数据库数据并保存在excel表格中的方法
Jun 12 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
Python语言异常处理测试过程解析
Jan 08 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
如何用用Python将地址标记在地图上
Feb 07 Python
Python入门及进阶笔记 Python 内置函数小结
Aug 09 #Python
Python正则表达式的使用范例详解
Aug 08 #Python
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 #Python
Python写的Socks5协议代理服务器
Aug 06 #Python
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 #Python
Python写的Discuz7.2版faq.php注入漏洞工具
Aug 06 #Python
Python常用列表数据结构小结
Aug 06 #Python
You might like
十天学会php之第七天
2006/10/09 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
PHP goto语句用法实例
2019/08/06 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
python实现根据图标提取分类应用程序实例
2014/09/28 Python
python 网络编程常用代码段
2016/08/28 Python
Python自定义线程池实现方法分析
2018/02/07 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
Python 线程池用法简单示例
2019/10/02 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
工程项目合作意向书
2015/05/08 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书