python基础学习1

####python背景介绍,环境配置,编码风格,基础概念,基本数据类型######

######python背景介绍####

1.基本知识

.作者龟叔

.有三个版本

2.X 2.6既有2.X的特性又有3.X的特性 2.7是最新的2版本 2版本没有最新更新只到2.7

3.X 3.0   

我们学习2.7版本

python2.6是一个过渡版本,既可以执行,又包含python3.0的新特性;

现在企业实战应用python版本为2.7版本;

python2.7是python2.x系列最后一个版本,不会再有python3.0;

2.什么是python?

python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。

c是编译型语言 python是解释型语言

 

3.python的简史

1989年,Guido(龟叔)为ABC 语言写的一个插件。因Monty Python的喜剧团体的原因,故给这个语言起名为python。linux也是

1989年诞生的,1991年正式发布linux1.0内核;

1990年, 发布python的第一个版本;

2001年发布python2.0版本;

2010年获年度Tiobe编程语言大奖,TIOBE网站;

2013年发布python3.x版本;

4.python的优点

.创始人评价:简单、优雅、明确

.有强大的第三方库模块,需要实现一复杂功能,只需要调用现有的库,可快速实现功能。20多年的发展,各种库都已经完

,比如:邮件库,爬虫库......

.可跨平台移植,java有Java的虚拟机,python同样;

.是一种面向对象的语言;

.是一种可扩展的语言(与C,C++,Java结合)

 

 

5.python的缺点

.代码执行速度慢,相比C语言,不过现在python的异步并发框架导致执行速度慢;

.python是开源的编程语言,代码不能加密,当然有相应的工具可以将python代码转换为exe的二进制可执行码,但是反解码也很容易;

6.python的应用

.软件开发游戏后台、搜索、图形界面

 网站

 科学运算

.系统管理

 脚本

 IT自动化工具

####python环境配置######

1.查看python版本

[[email protected] ~]# python --version

Python 2.7.5 ##此处显示python的版本为2.7.5

 python基础学习1

2.交互式使用python

 

[[email protected] ~]# python ##直接输入python进入交互界面

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> print "hello tom" ##显示hello tom

hello tom

>>> ##ctrl+d或者exit()退出

[[email protected] ~]#

[[email protected] ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

 

>>> print '哈哈' ##

哈哈

>>> a = '哈哈' ##变量赋值

>>> type(a) ##查看a的类型

<type 'str'> ##

>>> b = u'为奥' ##前面加u 表示指定为unicode

>>> type(b)

<type 'unicode'> ##unicode类型

>>> name_unicode = u'的热风'

>>> type(name_unicode)

<type 'unicode'>

>>> name_utf8 = name_unicode.encode('utf-8') ##将name_unicode编码为utf-8格式 赋值给name_utf8,encode表示编码

>>> type(name_utf8)

<type 'str'> ##表示utf-8格式

>>> name_unicode1 = name_utf8.decode('utf-8')

>>> type(name_unicode1)

<type 'unicode'>

>>>

[[email protected] ~]#

python基础学习1

3.python脚本文件

 

[[email protected] ~]# which python ##查看位置

/usr/bin/python

[[email protected] ~]# vim hello.py ##编辑纯英文脚本

#!/usr/bin/env python ##加env为了避免因为环境改变影响脚本的可移植性

print "i love you

[[email protected] ~]# chmod +x hello.py

[[email protected] ~]# ./hello.py

i love you

 python基础学习1

[[email protected] ~]# vim haha.py ##编辑含中文脚本

#!/usr/bin/env python

print "哈哈"

[[email protected] ~]# chmod +x haha.py

[[email protected] ~]# ./haha.py ##报错:语法错误,未指定编码格式

  File "./haha.py", line 2

SyntaxError: Non-ASCII character '\xe5' in file ./haha.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

python基础学习1

[[email protected] ~]# vim haha.py ##指定编码格式

#!/usr/bin/env python

#coding:utf-8

print "哈哈"

[[email protected] ~]# ./haha.py ##执行成功

哈哈

 python基础学习1

 

*因为编写python语言脚本,python有不同的版本,当移植到别的机器上是可能因版本不同而出错,加env解决解决因环境改变而出现的问题

 

字符编码

ASCII:1字节=8位, 2^8=256

Unicode:2字节=16位,2^16=65536 英文存储两个字节  中文存储2个字节

utf-8:英文存储1个字节,中文存储三个字节

内存读取:Unicode

存在硬盘:utf-8

字符的编码(encode):unicode转换为utf-8

字符的编码(decode):utf-8转换为unicode

 

为什么要进行unicode和utf-8转换

因为数据存储时unicode是汉字和拼音都是两个字节,utf-8存储时是中文三个字符

 

 

 

4.Python解释器

.cpython

.ipython:基于cpython,交互方式有所增强

.pypy:对代码进行动态编译,JIT技术(just-in-time compiler,即时编译器),显著提高代码执行速度。

.Jpython:java平台上的python解释器,将python代码编译成java字节码执行。

.IronPython:直接将python代码编译成.net的字节码

 

[[email protected] Desktop]# ls

hello.py  ipython  iso

[[email protected] Desktop]# cd ipython/

[[email protected] ipython]# yum install * ##安装ipython

 

[[email protected] Desktop]# ls

hello.py  ipython  iso  pycharm-community-2017.1.4.tar.gz

[[email protected] Desktop]# tar zxf pycharm-community-2017.1.4.tar.gz

[[email protected] Desktop]# ls

hello.py  iso                         pycharm-community-2017.1.4.tar.gz

ipython   pycharm-community-2017.1.4

[[email protected] Desktop]# cd pycharm-community-2017.1.4/

[[email protected] pycharm-community-2017.1.4]# cd bin/

[[email protected] bin]# ls

format.sh       idea.properties  pycharm64.vmoptions  restart.py

fsnotifier      inspect.sh       pycharm.png

fsnotifier64    log.xml          pycharm.sh

fsnotifier-arm  printenv.py      pycharm.vmoptions

[[email protected] bin]# sh pycharm.sh ##打开

 python基础学习1

 

 python基础学习1

 python基础学习1

python基础学习1

python基础学习1

python基础学习1


python基础学习1

5.输入与输出

输出: 告诉用户程序执行的结果

输入: 告诉计算机程序所需的信息

 

[[email protected] ~]# ipython

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

Type "copyright", "credits" or "license" for more information.

 

IPython 3.2.1 -- An enhanced Interactive Python.

?         -> Introduction and overview of IPython's features.

%quickref -> Quick reference.

help      -> Python's own help system.

object?   -> Details about 'object', use 'object??' for extra details.

 

In [1]: print 1

1

 

In [2]: print 1>2

False

 

In [3]: print 1<2

True

 

In [4]: pr

%%prun      %precision  %profile    %prun       print       property

 

In [4]: print 10+3

13

python基础学习1 python基础学习1

In [5]: ra

raise      range      raw_input  

 

In [5]: raw_input()

hello

Out[5]: 'hello'

 

In [6]: name = raw_input("Name:")

Name:haha

 

In [7]: print name

haha

 

In [8]: age = input("Age:")

Age:6

 

In [9]: print age

6

 

In [10]: print age>2

True

 

In [11]: print age>8

False

 

In [12]: type(age)

Out[12]: int

 

In [13]: type(name)

Out[13]: str

python基础学习1

变量

.变量是内存中的一块区域。

.变量的命名: 变量名由字母,数字,下划线组成。

.变量的特性:

.实际存储在内存上;

.变量名最好见名知意;

.变量可重新赋值

 

[[email protected] ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a=1

>>> print a

1

>>> a_4 = 123

>>> print a_4

123

>>> _d = 3

>>> print _d

3

>>> 2a = 55

  File "<stdin>", line 1

    2a = 55

     ^

SyntaxError: invalid syntax ##指语法错误,无效的语法

>>> a = 7

>>> b =

  File "<stdin>", line 1

    b =

      ^

SyntaxError: invalid syntax

>>> b = 3

>>> print a + b

10

 python基础学习1

.python中地址变量与c语言刚好相反,一条数据包含包含多个标签

[[email protected] ~]# python

Python 2.7.5 (default, Feb 11 2014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> a = 3

>>> b = 3

>>> id(a)

12491832

>>> id(b)

12491832

>>>

python基础学习1

面试题常见问题:简要描述Python的垃圾回收机制(garbage collection)。

Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会消失,分配给该对象的内存就会释放出来用作他用。

PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用

它的对象被删除,它的ob_refcnt就会减少.引用计数为0时,该对象生命就结束了。

 

 

运算符与表达式

赋值运算符:=, +=, -=, /=, *=, %=

算术运算符:+, -, , /, //, %, *

关系运算符: >, >=, <, <=, !=, ==

布尔值:1 < 2,返回一个布尔类型的结果

逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not

 

6.python编程风格

 

.c与python的对比学习,C代码块是通过花括号{}做以区别

.python编程初级要掌握的编程风格如下:

不要在行尾加分号;

每行不超过80个字符;

Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。

增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。

python注释单行注释:

#  常被用作单行注释符号  

#  开头的行,其右边的任何数据都会被忽略,当做是注释。

块注释: 需要批量文本或代码时,使用三引号  ''' '''  .,当然三引号也可以实现多行文本格式化打印。

 

6. 字符的编码与解码

当存储数据到硬盘,需要考虑到节省空间的问题,所以采用utf-8格式进行存储;

当将数据读入内存时,统一一个编码格式便于操作,采用unicode编码格式;

因此字符的编码与解码一定要熟练操作。

 

7.pycharm的使用

 

编写-python文件,定义变量x=10,通过语句判断

如果x>0,输出“x是正数”,并输出x-10值;

如果x<0,输出“x是负数”,并输出x+10值;

如果x=0,输出“x是零”

#!/usr/bin/env python

# coding:utf-8

_author_ = "tom"

 

'''

@author:houruiyun

@file:2.py

@contact:674211605.qq.com

@time:6/25/172:45 AM

@desc:

'''

x = 10

if  x>0:

     print "x是正数"

     print x-10

elif x<0:

     print "x是负数"

     print x+10

else:

     print "x=0"

 

 

编写一程序,录入信息包括  hostname、IP、used_year、CPU、Memory、manager_name  ,如果使用年限超过10年,直接显示警告

信息“该服务器使用年限太久!”,如果使用年限不超过10年,显示该服务器信息如下面的格式如下:

主机信息

主机名: hostname

IP:IP

使用年限:used_year

CPU:CPU

Memory:Memory

manager_name:manager_name

#!/usr/bin/env python

# coding:utf-8

_author_ = "tom"

 

'''

@author:houruiyun

@file:2.py

@contact:674211605.qq.com

@time:6/25/172:45 AM

@desc:

'''

hostname = raw_input('hostname:')

IP = raw_input('IP:')

used_year = input('userd_year:')

CPU = raw_input('CPU:')

Memory = raw_input('Memory:')

manager_name = raw_input('manager_name:')

if used_year>10:

   print ('该服务器使用年限太久!')

else:

    print '''

                    主机信息

    主机名:%s

    IP:%s

    使用年限:%d

    CPU:%s

    Memory:%s

    manager_name:%s

    ''' %(hostname,IP,used_year,CPU,Memory,manager_name)

 

 

 python基础学习1

 python基础学习1

编写一个四则表达式:执行效果

num1:

operate:

num2:

输出运算结果

#!/usr/bin/env python

# coding:utf-8

from __future__ import division ##实现非整除需要加

_author_ = "tom"

 

'''

@author:houruiyun

@file:2.py

@contact:674211605.qq.com

@time:6/25/172:45 AM

@desc:

'''

num1 = input('num1:')

operate = raw_input('operate:')

num2 = input('num2:')

if operate == '+':

   print num1 + num2

elif operate == '-':

     print num1 - num2

elif operate == '*':

    print num1*num2

elif operate == '/':

    print num1 / num2

 

 python基础学习1


python基础学习1

python基础学习1


python基础学习1