2018-04-07
一、Python 介绍
python 2.X 在2020以后不再更新代码。
Python 2.x 与 Python 3.x 的区别
python2.x
语法:重复,不规范
编码:默认ASCII,无法显示中文。解决方式: # -*- encoding:UTF-8 -*-
数据类型:有long int:长整型
语法格式:print 'hello world' 或 print ('hello world')
python 3.x
语法:整合源码,清晰简洁,优美
编码:默认UTF-8
数据类型:无 long int:长整型
语法格式:print ('hello world')
python语言划分
编译型:将代码全部一次性编译成二进制再执行。
代表语言:Python JavaScript ruby PHP Perl
解释型:当程序开始执行时,它将一行一行的解释成二进制,执行
代表语言:C C++ go swift
混合型:
解释器:
CPython
当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python
就是启动CPython解释器。CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>
作为提示符,而IPython用In [
序号
]:
作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
小结:
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
Python 基础知识
变量
将程序的中间结果暂时存在内存中,以便后续程序引用
1、组成:数字,字母下划线组成,不能是数字开头
2、不能使用关键字:
- ['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、不能中文,不能过长
4、建议格式:birth_date_time
常量
注释
单行注释:#
多行注释:''' ''' 或 """ """
三引号的另一个功能:格式化输出
info = '''
------------ info of %s -----------
Name : %s #代表 name
Age : %d #代表 age
job : %s #代表 job
Hobbie: %s #代表 hobbie
------------- end -----------------
''' %(name,name,int(age),job,hobbie)
print(info)
注意%d 表示变量为数字,所以需要转化为数字形式使用int()函数
双引号与单引号作用一样,但是一下情况必须用双引号:
""" bob's hobby is basketball """
程序交互
name = input ('please input your name')
注:input 接收的字符全部存储为字符串格式,即使输入的是数字,若想转化为字符串需要 int(name)
基础数据类型
整数类型(int)
字符串类型(str)
在Python中,加了引号的字符都被认为是字符串!
字符串拼接
>>> name
'Alex Li'
>>> age
'22'
>>>
>>> name + age #相加其实就是简单拼接
'Alex Li22'
>>>
>>> name * 10 #相乘其实就是复制自己多少次,再拼接在一起
'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
布尔值(True,False)
布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
但其实你们并不明白对么? let me explain, 我现在有2个值 , a=3, b=5 , 我说a>b你说成立么? 我们当然知道不成立,但问题是计算机怎么去描述这成不成立呢?或者说a< b是成立,计算机怎么描述这是成立呢?
没错,答案就是,用布尔类型
>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True
基本运算符
运算符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算
算数运算
比较运算
赋值运算
逻辑运算
针对逻辑运算的进一步研究:
1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
例题:
判断下列逻辑语句的True,False
1,3>4 or 4<3 and 1==1
2,1 < 2 and 3 < 4 or 1>2
3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2 , x or y , x为真,值就是x,x为假,值是y;
x and y, x为真,值是y,x为假,值是x。
in,not in :
判断子元素是否在原字符串(字典,列表,集合)中:
流程控制之
if语句
逐行判断,符合条件即推出,否则继续向下运行。
if 条件1:
结果1
elif 条件2:
结果2
else:
结果3
while语句
符合条件就一直运行
while 1< 2:
print ()
else 只要没有break跳出循环,就可以运行else。
continue 跳出本次循环,继续下一次循环。
break 跳出整个循环结束while。
flag = true
for循环语句
有限循环
x 可以是字符串 字典 列表 元祖
for i in x:
do...
else
break
continue
相关练习题
1、使用while循环输入 1 2 3 4 5 6 8 9 10
2、求1-100的所有数的和
3、输出 1-100 内的所有奇数
4、输出 1-100 内的所有偶数
5、求1-2+3-4+5 ... 99的所有数的和
6、用户登陆(三次机会重试)