一、Python的简介
1.Python的诞生
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
2.目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter3
3.Python是什么编程语言
编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。
解释型:程序运行时将代码一行一行的解释转换成二进制。
优点:开发效率高、排错快、可以跨平台。
缺点:每次运行的时候都要解释一遍,执行效率相对慢。
编译型:将代码一次性编译成机器语言,并保存成二进制再运行。
优点:执行效率高。
缺点:排错慢、开发效率低、不能跨平台。
4.Python的优缺点
优点:
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
缺点:
1.运行速度慢。
2.代码不能加密。
3.线程不能利用多CPU。
5.Python的种类
CPython(用C语言开发的解释器),JPython(运行在Java平台上的解释器)、IPython(基于CPython之上的一个交互解释器)、PyPy(对python代码进行动态编译,目标是执行速度)、IronPython(运行在微软.Net平台上的Python解释器)。
6.Python2x与Python3x的区别
- Python2x默认编码ascii码,不能识别中文;Python3x默认编码是unicode可以识别中文。
- Python2x的输入:raw_input(); Python3x的输入:input()。
- Python2x的输出:print可以不加(); Python3x的输出:print()。
- Python2x除法当两个整型相除(除数不能为0),值是个整型; Python3x两个整型相除值可以是浮点型。
二、Python基础初识
1、变量
变量是把程序运行的中间结果临时存在内存里,以便后续的代码调用。
变量的命名规则:
- 变量名只能是数字、字母和下划线。
- 变量名不能以数字开头。
- 变量名要有可描述性。
- 变量名不能是python的关键字。
- 变量名不能是中文、变量名不能太长。
- 官方推荐的两种形式:驼峰体和下划线
-
#驼峰体 AgeOfOldboy = 56 NumberOfStudents = 80 #下划线 age_of_oldboy = 56 number_of_students = 80
变量的赋值:等号右边的值赋给等号左边的变量名,python是解释型语言,代码一行一行的执行,后面的变量会覆盖前面的。
age1 =12 age2=age1 age3=age2 age2=6 print(age1,age2,age3)
执行结果:12 6 12
2、常量
常量指不变的量或在程序运行过程中不会改变的量,在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。
AGE_OF_OLDBOY = 56
3、注释
单行注释:#
多行注释:""" """或‘’‘ ’‘’
4、程序交互 input
name=input('请输入你的名字:') age=input('请输入你的年龄:') hobby=input('请输入你的爱好:') print(name,age,hobby)
#input输出的数据类型都是str
5、基础数据类型
- int(整型)long(长整型)#在Python3里不再有long类型了,全都是int
- str(字符串)#加了引号的字符都被认为是字符串,多行字符串用多引号
- bool(布尔值:False、True)
- list(列表)
- tuple(元组)
- dict(字典)
- set(集合)
查看数据类型使用type()
n1='guo' n2=True n3='False' print(type(n1)) print(type(n2)) print(type(n3))
执行结果:
<class 'str'>
<class 'bool'>
<class 'str'>
6、格式化输出(%占位符、s-str字符串、d-digit数字)
第一种:
name=input('请输入你的姓名:') age=input('请输入你的年龄:') hobby=input('请输入你的爱好:') msg='我叫%s,今年%d岁,爱好%s'%(name,int(age),hobby) print(msg)
执行结果:
请输入你的姓名:圆圆
请输入你的年龄:18
请输入你的爱好:睡觉
我叫圆圆,今年18岁,爱好睡觉
第二种:
dic={'name':'圆圆','age':18,'hobby':'买买买'} msg='我叫%(name)s,今年%(age)d岁,爱好%(hobby)s'% dic print(msg) 执行结果: 我叫圆圆,今年18岁,爱好买买买
第三种:在格式化输出中单纯的想要显示%,用%%解决。
name=input('请输入你的姓名:') age=input('请输入你的年龄:') msg='我叫%s,今年%d岁,学习进度为10%%'%(name,int(age)) print(msg) 执行结果: 请输入你的姓名:yuanyuan 请输入你的年龄:18 我叫yuanyuan,今年18岁,学习进度为10%
7、逻辑运算符 (and、or、not)
数据类型的转换:int---->bool 0为False,非0为True。
bool---->int False为0,True为1。
第一种:前后都是比较运算,优先级()>not>and>or,同一优先级从左至右依次计算。
print(1>2 and 3<4 and 3>2 or 2<3 )
执行结果:
True
第二种:前后都是数值运算
优先级:x or y,如果x为True,则返回x,否则返回y。
x and y,如果x为True,则返回y,否则返回x。
print(1 or 3) print(1 and 3) 执行结果: 1 3
第三种:混合运算
print(1>2 or 3 and 4) print(2 or 2>3 and 4) 执行结果: 4 2
8、in、not in 判断子元素是否在原字符串(字典,列表,集合)中,从左到右依次检测
s='老男孩AlexWusir' print('老男孩' in s)
执行结果:
True
print('老男孩Wusir' in s) 执行结果: False
9、if 语句
1)第一种结构
if 条件: 结果
2)第二种结构
if 条件: 结果 else: 结果
3)第三种结构
if 条件1: 结果1 elif 条件2: 结果2 elif 条件3 结果3
例:
choice=input('请输入你猜的数字:') if choice =='2': print('我请你吃饭') elif choice=='3': print('免一周作业') elif choice=='4': print('一起去玩') 执行结果: 请输入你猜的数字:2 我请你吃饭
4)第四种结构
if 条件1: 结果1 elif 条件2: 结果2 elif 条件3 结果3 else: 结果4
例:
choice=input('请输入你猜的数字:') if choice =='2': print('我请你吃饭') elif choice=='3': print('免一周作业') elif choice=='4': print('一起去玩') else: print('输入错误') 执行结果: 请输入你猜的数字:6 输入错误
5)第五种结构
if 条件: if 条件: 结果 else: 结果 else: 结果
例:
age=input('请猜我的年龄:') if True: if age=='18': print('恭喜你猜对了') else: print('这都看不出来') else: print('输入错误') 执行结果: 请猜我的年龄:22 这都看不出来
10、while语句
1)第一种结构
while 条件: 结果
例:
while True:#死循环 print(111) print(333) print(444)
执行结果:
111
333
...
...
2)第二种结构
while 条件: else:
例1:
count=1 while True: print(count) if count==3:break#循环被break打断,程序不会走else count+=1 else: print('循环结束') 执行结果: 1 2 3
例2:
while True: print(111) print(222) continue#遇到continue时continue下面的代码不执行,返回继续执行continue以上的循环
print(333) 执行结果: 222 333 ... ...
#如何结束循环:1.改变条件,2.break。
用while循环打印1-100的方法:
第1种:
flag=True count=1 while flag: print(count) count+=1 if count==100: print(count ) flag=False
执行结果:1
2
...
100
第2种:
count=1 while count<101: print(count) count+=1
第3种:
count=1 while True: print(count) count+=1 if count==101: break