python学习(1)

来源:互联网 发布:申请淘宝达人的条件 编辑:程序博客网 时间:2024/05/24 20:07

Python介绍

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python由Guido van Rossum于1989年底发明,1991年,第一个公开发行版发行;2001年发布python2.0版本;2013年发布python3.x版本。(2.x版本和3.x版本不兼容,在2.x下正常运行的代码在3.x下可能会有报错)

Python可以应用在写网站,做游戏,自动化运维,数据分析等等方面,它是一种比较简单的语言,可移植性也很强,但与c,java相比,延迟比较大。

环境搭建及编码

1、安装python

在linux镜像中,一般自带的有python,可以用yum直接安装(yum install python),如果没有,也可去官网自行下载。
安装完成后,可以用python -V查看当前python的版本,这里用的是Python 2.7.5

2、python的交互式使用

直接输入python命令即可进入交互式的python编程环境

print:输出
退出:快捷键ctrl+d或者使用exit()

3、python脚本

与使用shell脚本一样,我们用vim来创建脚本,它以.py结尾(如:vim hello.py)
在这里写一个简单的脚本,输出“Hello!“

#!/usr/bin/pythonprint "Hello!"

加上执行权限,并执行可以看到:

关于python脚本中的第一行 :
#!/usr/bin/python 这种写法表示直接引用系统的默认的 Python 版本,这样的话python程序移植到其他机器上运行的时候可能会有问题,因为别人装的Python 版本与你的并不一定一致。
#!/usr/bin/env python 这种写法表示,引用环境变量里面自定义的 Python 版本, 具有较强的可移植性。

4、中文编码

在前面,我们可以成功的输出Hello,但我们偶尔也会用到中文,将Hello改为你好会出现什么情况呢?
(print “你好!”)

这是因为python默认的编码格式是 ASCII 格式,无法正确打印汉字,所以在读取中文时会报错。
解决方法为只要在文件开头加入 #coding:utf-8 就行了
(#coding=utf-8;#encoding:utf-8;#encoding=utf-8也可以 )
如:

#!/usr/bin/env python#coding:utf-8print "你好!"

输出结果为:

5、字符编码

我们常用的一般有3种编码格式:

  • ASCII:二进制存储,英文字母加各个字符一共128个,每8位存储一个字符,2^8=256。
  • Unicode:支持中文,用两个字节对应一个文字(中文或英文都是2字节),2^16=65536。
  • UTF-8:可变长度编码格式,英文字符用ASCII码来存,中文用utf-8来存,
    也就是说存一个英文字符要1字节,存一个中文字符要3字节。

我们在用的时候,需要指定存储格式为Unicode。
指定方式:a = u’hi’
查看类型:type()

6、字符的编码与解码

我们将数据读入内存时,需要统一编码格式便于操作,因此采用unicode编码格式;但在实际存储时,由于中文远远少于英文,这样存便很浪费空间了(不分中英文,都占2个字节),所以我们需要把它转换成UTF-8格式节省空间(英文占1个字节,中文占3个字节)。

字符的编码(encode)从unicode到utf-8格式
字符的解码(decode)从utf-8到unicode格式

例:定义一个变量,编码格式为unicode,然后进行编码和解码。

7、其它工具——ipython,Pycharm

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

Pycharm:有图形界面,用起来更方便,有很多快捷键,有提示,可以自动补齐等很多好处,我们接下来在使用过程中不断熟悉。

python基础

1、python注释

  • 单行注释: # 常被用作单行注释符号, # 开头的行,其右边的任何数据都会被忽略,当做是注释。
  • 块注释: 需要批量文本或代码时,使用三引号 ”’ ”’ .,当然三引号也可以实现多行文本格式化打印。

2、编程风格

  • Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。
  • Python语言利用缩进表示语句块的开始和退出。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量。
  • 不要在行尾加分号;

如下所示:定义变量x=10,通过if语句判断
如果x>0,输出“x是正数“,并输出x-10的值;
如果x<0,输出“x是负数“,并输出x+10的值;
如果x=0,输出“x为零“。

if语句的使用方法:
if x>0:

elif x<0:

else:

#!/usr/bin/env python#coding:utf-8_author_ = "xj"x = 10if x > 0:    print "x是正数"    print "x-10=", x-10elif x < 0:    print "x是负数"    print "x+10=", x+10else:    print "x为零"

运行结果为:

将x=10改为x=0结果为:

3、输入,输出

输出:print
print + 字符串…

print + 数字|表达式

输入:
aw_input写入的内容赋值给变量name,输入的内容为字符类型

input写入的内容赋值给变量age,输入的内容为数值类型

小练习:编写一程序,录入信息包括 hostname、IP、used_year、CPU、Memory、manager_name ,如果使用年限超过10年,直接显示警告信息“该服务器使用年限太久!”,如果使用年限不超过10年,按格式显示信息。

#!/usr/bin/env python# coding:utf-8_author_ = "xj"hostname = raw_input("主机名:")IP = raw_input("IP:")user_year = input("使用年限:")CPU = raw_input("CPU:")Memory = raw_input("Memory:")manager_name = raw_input("manager_name:")if user_year > 10:    print '该服务器使用年限太久!'    exit()else:    print '''                    主机信息        主机名:%s        IP:%s        user_year:%d        CPU:%s        Memory:%s        manager_name:%s    ''' % (hostname, IP, user_year, CPU, Memory, manager_name)

(三引号 ”’ ”’ 可以实现多行文本格式化打印)
结果如下:

4、变量

变量的命名: 变量名由字母,数字,下划线组成
变量的赋值:与c语言一样,如:a=1
python中地址变量:与c语言刚好相反,一条数据包含包含多个标签,且变量可重新赋值,会自动释放内存。

5、运算符与表达式

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

关系运算符: >, >=, <, <=, !=, ==
返回一个布尔类型的结果

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

小练习:编写四则运算,依次输入数字,操作,数字,对操作符进行判断,输出结果。
(from __future__ import division使除法运算可以正常进行,不会出现5/2=2的情况)

#!/usr/bin/env python# coding:utf-8from __future__ import division  #除法_author_ = "xj"num1 = input("num1:")operate = raw_input("operate:")num2 = input("num2:")if operate == '+':    num = num1 + num2elif operate == '-':    num = num1 - num2elif operate == '*':    num = num1 * num2elif operate == '/':    num = num1 / num2else:    print "operate please use:[ + - * / ]"    exit()print num1,operate,num2,"=",num

运行结果:

基本数据类型

1、数字

整型(%d)
长整形 eg:2L
浮点型:表示小数(%f)
复数类型(基本不用)
eg:1.23j

2、字符串

转义符号:
\t——Tab
\n——换行

字符串索引
(编号从0开始,从左到右增加)

字符串切片
a[0:4:1]:表示切片取出第0个到第4个,步长为1

综合练习

编写一个python脚本,实现下面功能:
- 要求用户输入用户名和密码;
- 如果用户名和密码均正确时,输出:”welcome to user manage system!” ;
- 如果用户名和密码不正确时,重新输入,最多3次机会;
- 用户输入超过3次机会时,报错,输出:”你已经登陆过三次,请10min后再登陆。”

#!/usr/bin/env python# coding:utf-8_author_ = "xj"i = 0while (i < 3):    name = raw_input("name:")    password = raw_input("password:")    i += 1    if name == 'root' and password == 'westos':        print "welcome to user manage system!"        exit()    print "用户名或密码错误,请重新输入,你还有%d次机会!" % (3 - i)print "你已经登陆过三次,请10min后再登陆。"

运行结果:

不成功时:

原创粉丝点击