第一章 python介绍
1、python简介:
Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言(它不仅仅是一门脚本语言!!!),由Guido于1989年发明,第一个公开发行版发行于1991年。
2、风格:
Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。
第二章 python 2.x or 3.x:
本人认为3.x的版本已经非常成熟,大多数热门的模块都支持了3.x的版本,而且2.x版本以后都不会有重大更新,鉴于此,本人强烈推荐安装3.x的版本以便更好的学习python。
本人python解释器用的是python3.5版本,IDE是pycharm5.0.2版本
2.x和3.x的区别:
1、print is a function
2、All is unicode now
3、还可以这样用
4、一些库名的改变
5、1/2终于等于0.5了
6、raw_input()没了
2.x的raw_input()=3.x的input()
2.x的input()=3.x的eval(input())
7、class Foo:这种写法不能用了,改成class Foo(object)
第三章 安装python3.x
windows:
1、下载最新版本安装包
官网地址: https://www.python.org/downloads/
2、安装时路径可以自己指定也可以选择默认
3、安装时有选项可以加到环境变量中(最好选上,要不还得手动添加)
linux:
想怎么装就怎么装吧!!!
第四章 Hello World(国际惯例)
交互模式:python解释器如果加入环境变量中就可以在命令行直接输入python进入交互模式了
打印hello world:
这样就写好一行最简单的代码了!!!Ctrl、+d可以退出交互器
还可以用脚本执行
在pycharm中创建文件(python文件最好要用.py结尾):
第五章 变量
1、变量的意义
使数据能更好的保存以及在程序中顺利的传递。
2、声明变量
>>>name = 'hetan'
上述代码声明了一个变量,变量名为name,变量name的值为“hetan”,可以将变量名看成昵称,其代指内存中某个地址中保存的内容。
变量定义的规则:
① 变量名只能是字母、数字、下划线的任意组合
②变量名不能以数字开头
③以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
3、变量的赋值
上图中的打印结果表明了变量名是指向了内存中某个地址中保存的内容。
第六章 用户交互
注:input输入的值类型全是字符串
输入密码时,如果想让密码不可见可以使用getpass模块,使用方法如上图
第七章 流程控制
事例一 用户登录验证:
要求:提示输入用户名和密码,验证用户名和密码,如果错误,则输出用户名或密码错误,成功则输出欢迎xxx!
事例二 根据用户输入内容输出其权限
要求:hetan --> 超级管理员
liuyao --> 普通管理员
huangxu --> 业务主管
其他 --> 普通用户
事例三 猜数字,只有三次机会
要求:输入数字,输入错误有提示,正确输出bingo
注:python中for。。是可以和else一起用的,当循环正常完成时会进入else,若循环非正常结束则不会进入else
注:python中while。。是可以和else一起用的,当循环正常完成时会进入else,若循环非正常结束则不会进入else
ps:while循环是可以进入死循环的,当while后面的条件永远为真时则进入死循环,for循环没有死循环。
for循环的遍历:
#!/usr/bin/env python list = [1,2,3,4,5] for i in list: #for循环既可以遍历列表也可以遍历文件(按行遍历) print(i)
第八章 数据类型
1、数字
①INT(整型)
数字只能是整数
②LONG(长整型)
python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
③FLOAT(浮点型)
浮点数用来处理实数,即带有小数点的数字。类似于c语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下一位表示符号。
2、布尔值
True or False
1 or 0
3、字符串
"hello world"就是一个字符串
写程序是尽量避免字符串拼接,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每次出现就会在内存中从新开辟一块空间。
字符串格式化打印:
这是两种打印方法对比,可以看出第二种方法要好的多,在python中'''有两种含义,第一种是多行注释,第二种可以格式化打印,在它们内的内容是什么样的打印出来的就是什么样的,所以基本没人会用第一种方法打印,忘掉上面那种方法吧!!!。
上图是两种方法的结果对比,可以看出下面打印出的就是我在程序中写的。
注:字符串是%s;整数是%d;浮点数是%f
4、列表
创建列表的两种方式:
name_list = ['hetan','liuyao','huangxu']
name_list = list(['hetan','liuyao','huangxu'])
追加:append
计数:count
索引:index
插入:insert
删除:pop,remove
pop是删除列表中最后一个值
remove是删除指定的值
reverse是将列表值颠倒
sort是按二进制的值将列表元素排序
包含:
切片:
5、元组
元组是一种特殊的列表,它不能添加、删除,其他功能同列表。
6、字典(无序)
创建字典的方法:
7、 运算符
算数运算符:
比较运算符
1 1 == True #等于 - 比较对象是否相等 注:字符串与数字在3.x版本不能比较了,在以下运算符中同样适用 2 0 != False #不等于 - 比较两个对象是否不相等 3 0 <> False #同上 4 1 > 0 #大于-返回x是否大于y。注:所有比较运算符返回1表示真,0表示假。这分别与布尔值True和False等价。 5 0 < 1 #小于 - 返回x是否小于y 6 1 >= 0 #大于-返回x是否大于等于y 7 0 <= 1 #小于 - 返回x是否小于等于y
赋值运算符
#!/usr/bin/env python c = a+b #将a+b的运算结果赋值给c c +=a #等效于c=c+a c -=a #等效于c=c-a c *=a #等效于c=c*a c /=a #等效于c=c/a c %=a #等效于c=c%a c **=a #等效于c=c**a c //=a #等效于c=c//a
位运算符
按位运算符是把数字看作二进制来进行计算的。python中的按位运算法则如下:
#!/usr/bin/env python a = 60 #0011 1100 b = 13 #0000 1101 c = 0 c = a&b #按位与运算符 print(c) c = a|b #按位或运算符 print(c) c = a^b #按位异或运算符 print(c) c = a~b #按位取反运算符 print(c) c = a<<2#左移运算符 print(c) c = a>>2 #右移运算符 print(c)
逻辑运算符
成员运算符
#!/usr/bin/env python list = [1,2,3,4,5] a = 10 b = 5 a not in list #如果在指定序列中没有找到值返回True,否则返回False b in list #如果在指定序列中找到值返回True,否则返回False
身份运算符
第九章 文件基本操作
打开文件:
file = open('文件路径','模式')
模式如下:
①r 以只读的方式打开
②w 打开一个文件只用于写入。如果该文件已存在则将其覆盖,不存在则创建新文件。
③a 打开一个文件用于追加,如果该文件已存在,新的内容将会被写到已有内容之后,文件不存在,创建新文件写入。
④w+ 打开一个文件用于写读,如果文件已存在则将其覆盖,不存在则创建新文件。
写文件内容:
file.write('内容')
读取文件内容:
file.read() #一次性加载所有内容到内存 file.readlines() #一次性加载所有内容到内存,并根据行分割成字符串 for line in file: print line #遍历文件,每次仅读取一行
关闭文件:
file.close()