python创始人---- 吉多·范罗苏姆(Guido van Rossum)。于1989年圣诞节开发脚本解释器(Python)。中文名------(龟叔)
(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox到现在,依然掌握着Python发展的核心方向,称为仁慈的独裁者)
二 ,Python主要应用领域:
云计算 , 网络编程 , 爬虫, WEB开发 , 科学运算 , 人工智能 , 系统维护 , 金融 分析 , 图形GUI ,人工开发,自动化运维 , 游戏开发
Python在一些公司的应用:谷歌,豆瓣,知乎网等多个大型网站
Python的发展史即多版本:
1989年 Guido开始写Python语言的编译器(创建要求:功能全面,易学易用,有可扩展性)
1991年,第一个Python编译器诞生,用C语言实现的,并能调试C语言的库文件。python具有类,函数,异常处理,包含表和字典在内的核心数据类型,以及模块为基础的扩展系统,
Python 1.0 -January 1994 增加了lambda,map,filter,and,reduce
Python 2.0-October 16,2000,加入了内存回收机制,构成了现在Python语言框架的基础
Python 2.4-Novermber 30,2004,同年WEB框架Django诞生
Python 2.5-September 19,2006
Python2.6-October 1,2008
Python 2.7-July 3,2010
总结:Python2版本与Python3版本的异同:
Python2:代码冗余,重复代码多,语法不清晰,掺杂了C,php,java,javaSprct等多种语言在里面。
Python3:几乎是重构后的源码,规范,简洁,优美,清晰
Python是什么编程语言
首先,Python是高级语言,是解释型语言
*****编译型语言VS解释型语言*****
什么是编译型语言----------就是一次性将所有程序写完后在执行(缺点:出现错误难找难改,开发效率低,优点:运行速度快)
什么是解释型语言(及时调试代码,不能永久保存代码)----------就是一行一行执行(写一句代码执行一句。 缺点:运行速度慢,优点:开发效率非常高,易找错误能及时改掉代码错误)
Python的优点:
1, Python是一门语言非常优雅,明确,简单的解释性语言
2,开发效率非常高
3,高级语言
4,具有很好的可移植性
5,可扩展性好
6,可嵌入性
Python缺点:
运行速度慢,源代码不能加密,线程不能用CPU问题。
Python种类:CPython(使用最为广泛),IPython,PyPy,Jython,IronPython,
1.什么是编程-----------编写程序(编写代码,编写软件)
编程的目的:把自己想的东西写下来让计算及运行出来。
2.编程语言有哪些?
(1)机器语言
特点:用计算机能看懂的二进制(0和1)去写程序
优点:程序运行速度快
缺点:开发效率低
(2)汇编语言:
特点:用一些英文标签代替一串二进制数字区写程序
优点:比机器语言好一些,操作系统内大量使用汇编语言。比如关于进程的调度代码,就使用汇编语言写的。
缺点:开发效率低
(3)高级语言:
特点:用人能读懂的(英文)字符写程序
优点:开发效率高
缺点:必须翻译才能让计算机识别,导致运行速度慢
按照翻译的方式分为:
编译型:把源文件的代码一次性翻译,拿着编译后的结果直接给机器
C语言:编译器----------gcc,qlibc (开发效率低、运行效率高)
解释性:
python语言:解释器---------cpython(开发效率高、运行速度低)
总结:
运行效率从高到低、开发效率从低到高、学习难度从难到易
2------python介绍
python的种类:cpython、Ipython、pypy、jython、ironpython。
3------python安装:
测试安装是否成功
linux:
windows:
linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
python2与python3使用上的异同:一,python3 input与python2 raw_input
二,python3中没有long,如果元素过长默认为长整形,python3中的长整形都大写 python2中有长整形long
三,python3中输出 print()必须加括号 python2中输出 print()或print 变量名 ----可以不加括号
四,python2代码冗余,重复代码多,其中掺杂了许多C,java,php等语言 python3几乎是重构后的源码,清晰
,优美,简洁
五,python2可以输出中文,需要在开头加上# -*- encoding:utf-8 -*-
六,python2在编译安装时,可以通过参数-----enable-unicode=ucs2 或-----enable-unicode=ucs4
分别用于指定使用2个字节、4个字节表示一个unicode; python3无法进行选择,默认使用ucs4
七,python2 xrange或range python3:range
八,函数部分,python2中没有nonlocal,python3中新加了nonlocal(用于修改变量外部函数,不影响全局变量)
5.----------变量
(1)变量是什么
变---------变化
量---------衡量、计量。(表达的是一种状态)
变量-------name(变量名<标示符>)=123(变量值<变化的量>) =----------赋值符号
(2)变量规则
(3)定义方式
驼峰体
下划线
AGE = 10
常量:用大写表示
变量的赋值与修改
name1 = ‘egon’
name2 = ‘马德胜’
name = name1
print(name)
7.---------程序交互
注意-----Python2中用 raw_input 输入输出,而在Python3中用 input 输入输出
(1)什么是程序交互(input)?
name=input("输入用户名:") #无论用户输入何种内容,input都会存成字符串格式
print(name)
(2)为啥要有程序交互-------
让计算机能够模拟人,去接受客户输入的信息,用户与计算机进行交互,交流
在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错
执行脚本就会发现,程序会等待你输入姓名后再往下继续走。
可以让用户输入多个信息,如下
执行输出
程序交互练习题:
8,语句注释
单行注释: #
多行注释: ' ' ' ' ' ' 或 “”“ -------“””
****在编写Python程序时:文件头
#!/usr/bin/env python# -*- coding: utf-8 -*-
1,基础数据类型(初识)
什么是数据类型-----对常用的各种数据进行了明确的分类。
整形类型(int)----数字类型
int(整形)整形有32 位,取值范围为2**31——2**3在64位系统上, 整数的位数为64 ,取值范围为-2**63~2**692233722036854775807
***平python中没有长整形,全为int类型
sum = 10, a = 50,等
2,字符串类型(Str)
在Python中加了引号的字符都被认为是字符串,例如
name = ‘金星’ msg = “my is alex. I am 22 year old ” count = ''' 22 '''
***单双三引号都一样,在这里没有任何区别
3,字符串拼接(字符串的拼接只能是双方都是字符串,不能跟数字后其他类型拼接)
***数字可以加减乘除,单字符串只能相加,相乘运算。如下:
name1 = ‘金星’ name2 = ‘是讲师’ print(name1+name2) name3 = “金星是讲师”
name1 = ‘金星’ name1 * 10 #相乘其实就是复制自己多次,拼接在一起
print(name1) 》》》金星金星金星金星金星金星金星金星金星金星
*****字符串与数字之间转换:如果当字符串转换数字整数时int--------int(‘12’), 小数字符串转为:float(‘12.45’) 数字转换字符串要引用Str(12.45) Str(12) Ascll码转换为相应字符串chr(97)
字符串转换为相应的Ascll码 ord(‘a’)
4,布尔值(True(1)真 , False(0)假) 用于逻辑判断
a = 3 b = 5
>>> a > b(False) #不成立就是False,,,即假
>>>
>>> a < b(True) #成立就是True , 即真
5,格式化输出(用到了占位符,数字类型用&d,字符串类型用%s’)
name = input('name:')
age =int( input('Age:'))
job = input('Job:')
hobbie = input('Hobbie:')
msg = '''
---------------info to %s -------------------#这里的每个%s就是一个占位符,本行的代表,后面括号里的name
Name:%s #代表name
Age:%d #代表age
Job:%s #代表job
Hobbie:%s #代表hobbie
-------------end---------------------
'''%(name,name,age,job,hobbie) #这行的%就是把前面的字符串与括号后面的变量关联起来
print(msg)
*****如果在程序中出现10%,或者10%%时。这里是变量自身本来拥有的,所以我们在执行时必须把站位符的那个%加上去,不然会报错,
例如:msg = "我是%s,年龄%d,学习进度为80%"%(“金星”,18) print(msg) 会报错
正确方式:msg = “我是%s,年龄%d,目前学习进度为80%%”%(“金星”,18)(第一个%只是一个单纯的%,而不是占位符)
******input默认输入的都是字符串,数字需转换(int)
格式化输出
6,基本运算符
计算机可进行hen多种类的运算,有算术运算,比较运算,逻辑运算,赋值运算,成员运算,位运算,身份运算等
(1)算术运算
运算符:+(加) -(减) *(乘) /(除) %(求余---取模) **(幂-----平方) //(取整数---返回上的整数部分)
(2)比较运算
运算符: ==(等于,比较异同) !=(不等于-----条件) <>(不等于-----比较两个数是否相等) >(大于) <(小于) >=(大于等于----条件) <=(小于等于------条件)
(3)赋值运算符
运算符: =(赋值符号(变量)) +=(加法赋值运算符) -=(减法赋值运算符) *=(乘法赋值运算符) /=(除法赋值运算符) %=(取模赋值运算符) **=(幂赋值运算符) //=(取整数赋值运算符)
(4)逻辑运算
运算符:and(且)------and两边都为真结果为True反之为False , or(或)----or只要有一边为真结果就为True反之为False , not(取反)
优先级比较:not > and >or
*****同级比较运算时,规定从最左边开始
判断下列逻辑语句的True,False。
注意:x or y,x为真,值为x,x为假,值为y;
x and y , x为真,值为y,x为假,值为x。
例题:求出下列逻辑语句的值。
**** in(在/包含) , not in(不在/不包含)
用于判断子元素是否在源字符串(字典,列表,集合)中:
如:
print(‘喜欢’ in ‘sadfsd喜欢sdgfa’)--------True
print(‘a’ in ‘bcvd’)-------False
print(‘y’ not in ‘ofkjdslaf’)----------True
练习题:
7,流程控制之--------if
(1)if .....else 单分支
if 条件:结果
(2)if ......else 双分支 :
if 条件:
满足代码执行结果
else:
if 条件不满足走这段
(3)if .......else:多分支
回到流程控制上来,if...else ...可以有多个分支条件
例题:
age = 48
use = int(input("请输入年龄:"))
if use > age:
print("猜大了,往小了试试.....")
elif use < age:
print("猜小了,往大了试试....")
else:
print("恭喜你,猜对了........")
例题2
要求用户输入0-100的数字后,你能正确打印他的对应成绩
8,流程控制之while循环
*****彻底终止while循环的两种方式: 1,改变条件(标示位) 2,break(彻底结束循环)
**break与continue的区别
break:当程序执行时,遇到break跳出本层循环,彻底结束循环(break后的程序不再执行),执行循环体外面的程序。
break则完全终止循环
例子:break
输出
continue:程序在执行时,遇到continue 跳出本次循环(continue后面的程序不在执行),再执行下一次循环
例子:continue
输出
12.1,基本循环
12.3,while.....else....(在程序执行过程中,只要有break,else不会执行)
输出
如果执行过程中被break啦,就不会执行else的语句啦
输出
练习题:
for循环
while循环与for循环分别打印字符串中的每一个元素
练习题:
1,输出1-10这十个数
2,输出1-100所有的数
3,输出1 2 3 4 5 6 8 9 10
4,输出1-100的所有奇数
5,输出1-100之内所有的偶数
6,使用while循环实现输出2-3+4-5+6...+100 的和
7,输出1-100是所有数的和
8,用户三次登录机会
11,基础需求: •让用户输入用户名密码 •认证成功后显示欢迎信息 •输错三次后退出程序 升级需求: •可以支持多个用户登录 (提示,通过列表存多个账户信息) •用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)