码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础篇(入门)

时间:2016-07-16 06:38:33      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

一、Python 简介、特性、应用

Python是一门计算机编程语言,Python是一门计算机编程语言,它是由荷兰人Guido van Rossum在1989年圣诞节期间为了打发无聊的圣诞节而编写的,作为ABC语言的继承

特性:

  • 面向对象、解释型、动态、高级的计算机编程语言,官方定义其是优雅、明确、简单.
  • 开源免费、跨平台、移植性,可以在各种系统上使用
  • 说是容易上手、简单易学、功能强大.
  • 涵盖各种功能的标准库、第三方库.  batteries included (称为内置电池)
  • 让开发者把精力放在解决问题上,而不用太关心底层

应用:

   Python近些年在国内很火,一般用来做的事:自动化运维、自动化测试、数据分析、爬虫开发、运维脚本、Web 开发等.国内有知乎、豆瓣等都大量的应用了python开发,反正很多人都在学,都在搞

Python的类型:

  • cpython, C语言实现的python,默认的解释器
  • Jpython, Java实现的python
  • ipython
  • PyPy, 比较特殊,是python实现的python解释器
  • Rubypthon\ipython...   等等

 

二、开始Python

1、安装、环境

python可以跨平台,可以在win和linux系统上安装,python目前有2.x和3.x版本,2是主流的使用版本,3是趋势

  • windows平台安装,从官网下载版本,基本上就是下一步
  • linux平台安装
tar xf Python-2.7.11.tgz             #解压、编译安装
cd Python-2.7.11
./configure --prefix=/usr/local/
make -j2 && make install
mv /usr/bin/python /usr/bin/python2.6.6                #重命名系统默认的python
ln -s /usr/local/bin/python  /usr/bin/python           #创建软连接作为系统新的python版本
vim /usr/bin/yum                                 #修改python为python2.6,防止yum使用异常

# python                                       #查看python版本
Python 2.7.11 (default, Dec 17 2015, 01:08:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

 为了方便,添加tab自动补全

vim ~/.pythonstartup     #添加如下
#!/usr/bin/python 
import sys
import readline
import rlcompleter
import atexit
import os
# tab completion 
readline.parse_and_bind(‘tab: complete‘)
# history file 
histfile = os.path.join(os.environ[‘HOME‘], ‘.pythonhistory‘)
try:
    readline.read_history_file(histfile)
except IOError:
    pass
atexit.register(readline.write_history_file, histfile)
del os, histfile, readline, rlcompleter

添加到~/.bashrc

echo ‘export PYTHONSTARTUP="~/.pythonstartup"‘  >> ~/.bashrc
source ~/.bashrc    

测试

[root@python ~]# python
Python 2.7.11 (default, Mar 29 2016, 23:35:44) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.t                            #tab可以补全
os.tcgetpgrp(  os.tcsetpgrp(  os.tempnam(    os.times(      os.tmpfile(    os.tmpnam(     os.ttyname(    

2、彩蛋

>>> import this
The Zen of Python, by Tim Peters<br>
Beautiful is better than ugly.                  #美丽比丑陋好
Explicit is better than implicit.               #显示比隐式好
Simple is better than complex.                  #简单比复杂好
Complex is better than complicated.             #复杂比更复杂好
Flat is better than nested.                     #扁平比嵌套好
Sparse is better than dense.                    #分开比密集好
Readability counts.                              #可读性很重要
Special cases aren‘t special enough to break the rules.           #即使特殊情况也不要打破规则
Although practicality beats purity.                             #即使讲究实用性
Errors should never pass silently.                             #错误不能默默地通过(精准的捕获异常)
Unless explicitly silenced.                                        #除非明确要这样做
In the face of ambiguity, refuse the temptation to guess.                 #面对歧义,不要去猜测(去试)
There should be one-- and preferably only one --obvious way to do it.      #应该有一个而且是最好的方法
Although that way may not be obvious at first unless you‘re Dutch.    #虽然这并不容易
Now is better than never.                                                 #现在开始做比从来不做好,做之前想清楚            
Although never is often better than *right* now.
If the implementation is hard to explain, it‘s a bad idea.            #如果代码很难解释,不好     
If the implementation is easy to explain, it may be a good idea.      #如果代码很容易解释,好
Namespaces are one honking great idea -- let‘s do more of those!     #命名空间是个极好的想法,应该提倡

3、简单代码

>>> print ‘hello word‘
hello word

当计算器用,跟数学运算一模一样

>>> 1 + 10 
11
>>> 10 -1
9
>>> 1 * 2
2
>>> 2 * 1
2
>>> 2 / 2
1
>>> (2+3) * 4
20

当然可以把代码写在写到文件中执行,以.py作为文件的后缀

#!/usr/bin/env python      
#coding:utf8               #指定内容编码
print ‘hello,word‘
print 1 + 10
print 10 -1
print 2 * 2
print 2 / 2
print (2+3) * 4

5、代码执行过程

从上往下执行,代码读到内存---由解释器---词法分析---语法分析--字节码---pvm

6、注释

  • #,   ‘#‘后面的代码将被忽略
  • ‘‘‘ ‘‘‘ 或 """ """ ,     代码将被忽略,一般用来做注释
  • 空行或控股,   将被解释器忽略
#print ‘hello,word‘ #代码被忽略
‘‘‘print 1 + 10‘‘‘  #代码被注释
"""print 1+1"""     #代码被注释

7、语法规则

强制缩进,以缩进、冒号确定代码的归属、边界,Python会自动检查,好处就是代码看起来风格统一,习惯就好

缩进错误

>>>  print ‘Hello,python!‘               #多了个空格,缩进错误
  File "<stdin>", line 1
    print ‘Hello,python!‘
    ^
IndentationError: unexpected indent

语法错误

#coding:utf8

if True:
    print ‘True‘
else                                   #少了:号,语法错误
    print ‘False‘

结果:
 File "test.py", line 10              
    else
       ^
SyntaxError: invalid syntax

 

三、变量、对象、引用

变量,随时变化的量。变量是用来保存内存中对象,在特定的时间引用特定对象,对应的还有常量.

1、变量规则、定义

  • 一切确对象
  • 变量名可以是大小写字母、数字、下划线组成且第一个字符不能为数字
  • 变量名(左侧) = 对象(右侧), 只有对象被创建,变量才能被引用
  • 变量不要和保留字段冲突
  • 变量在初次赋值时创建,后面赋值将覆盖变量的值
  • 尽量使用有意义、清晰易懂的变量名
>>> var1 = 100                #定义一个int类型的对象100赋给变量var1
>>> var2 = ‘string‘           #定义一个str类型的对象‘string‘赋给变量var2
>>> var1
100
>>> var2
‘string‘

过程: 先在内存中创建对象100和string,然后变量指向这些对象,变量与对象之间建立引用关系

>>> id(var1),id(var2)
(25917344, 140258567970032)

可以通过id函数查看对象的内存地址

深入:

  • 变量到对象连接关系引用,更像是指针
  • 左侧可以是变量名或者对象元素,右侧可以对象或得到对象的表达式
  • 类型属性对象,而不是变量。变量到对象只是指向关系

2、变量赋值的方式

基本赋值、序列赋值、多目标赋值、增强型赋值、多变量赋值

  • 基本赋值
var1 = 200
var2 = ‘strings‘
  • 多目标赋值(共享引用、复用)
var = var1 = var2 = ‘zhang‘
id(name),id(name1),id(name2)              #通过id命令可以发现引用同一对象
(139847989733872, 139847989733872, 139847989733872)

是将字符串对象‘zhang’赋值给var2,var2赋值给var1,给var,是对象的共享引用(复用)

  • 序列赋值,解包,通过位置对应
>>> a,b,c,d = ‘abcd‘
>>> a,b,c,d
(‘a‘, ‘b‘, ‘c‘, ‘d‘)
  • 增强型赋值
a += 1        #等同于 a = a + 1
a -= 1        #等同于 a = a - 1
a *= 2        #等同于 a = a * 2
  • 多变量赋值,解包
user1,user2 = ‘zhang‘,‘li‘
>>> user1,user2
(‘zhang‘, ‘li‘)

 

 

Python基础篇(入门)

标签:

原文地址:http://www.cnblogs.com/huangweimin/p/5675094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!