python01
2018-07-09 13:28:40来源:博客园 阅读 ()
---恢复内容开始---
一、Python介绍
1、python的出生和应用
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
目前Python主要应用领域:
云计算
WEB开发
科学运算、人工智能
系统运维
金融
图形GUI
2、python是什么编程语言
编译语言主要从以下几个角度进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。
2.1编译型语言和解释型语言
编译型语言:当用户写完一段代码需要执行的时候,由编译器先把整段代码一次性编译成计算机能看懂的二进制文件,然后再执行。这个过程中,如果用户写的代码出错了,编译器就得整段从头开始编译,只是几行或者几页代码的情况下还感觉不出来,但是如果代码由成千上万行甚至上亿行,可想而知,会浪费很多时间,导致开发速度慢。而且,他不是跨平台的,编译过后的代码在不同操作系统上就无法执行。他的优点是运行快,因为一旦编译成功,每次调用只需直接执行即可
编译型语言的代表:C语言、C++语言
解释型语言:当用户写完一段代码需要执行的时候,由解释器一段一段的解释成计算机能看懂的二进制文件,然后直接执行。与编译型语言不同的是,如果用户写的代码出错了,解释器不需要从头开始,这就会大大节省了开发时间。而且他是可以移植的,不同操作系统由不同的解释器可以解释他。他的缺点是执行速度慢,每次执行都需要一行一行的解释。
解释型语言的代表:JavaScript、PHP、Python
2.2 动态语言与静态语言
动态语言:动态语言是指在运行的时候才去检查一个变量的数据类型,写程序的时候不需要先给一个变量指定类型。当第一次给变量赋值的时候,该语言会将该变量的数据类型存到内存当中。Python和Ruby就是典型的动态语言的代表。
静态语言:静态语言是指程序在编译的时候就要首先检查每个变量的数据类型,所以用户在写程序之前就要首先声明每个变量的数据类型。Java、C、C++都是静态语言的代表。
2.3 强类型定义语言和弱类型定义语言
强类型定义语言:一旦一个变量被赋值为一个数据类型,那么它将永远为该数据类型,除非它被强制转换(int()、str())。比如说 a = 1 那么之后在给 a 赋值的时候也必须为整形。
弱类型定义语言:一个变量可以在不同的时候被赋予不同数据类型的值。所以,一个变量的数据类型可以被忽略。
综上所述,Python是一种动态解释型的强类型定义语言。
3、python的优缺点
优点:
优雅、明确、简单
可移植性、可扩展性、嵌入性
开发效率高
缺点:
速度慢
代码不能加密
不能多线程
4、python的种类
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 1、下载安装包 2 https://www.python.org/downloads/ 3 2、安装 4 默认安装路径:C:\python27 5 3、配置环境变量 6 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 7 如:原来的值;C:\python27,切记前面要有英文输入法状态下的分号
三、python基础
1.编写python代码
在D盘创建一个文件名为1.py的文件,代码如下
print("Hello world")
按win+R打开运行窗口,输入cmd打开命令窗口、
在命令行窗口里输入python D:/1.py
上图可以看出,以及成功运行该文件代码并且打印出“Hello World!”
2.内容编码
解释器在执行代码的时候,需要将代码编译成机器能读懂的二进制码(由1和0组成),而python2版本在编译的时候默认以ASCII码的格式进行转换(也可以指定编码格式),而python3版本在编译的时候默认为utf-8格式进行转换。
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
然而,世界上的语言以及符号远远不止256个,所以当计算机传入世界各国的时候ASCII码已经不能满足大家的使用了,于是出现了Unicode(统一码、万国码、单一码),Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
但是问题来了,友谊Unicode至少2个字节,也就是16位,但是英文字母以及有些符号根本不需要这么多字节,所以统一用Unicode码的话会大大浪费宝贵的内存空间,于是又出现了一种新的编码:UTF-8.该编码格式是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
print('你好,世界!')
解决方法是,在代码的首行加入以下代码,用来指定编码格式:
#-*- ecoding:utf-8 -*-
#这样,就能成功执行并打印出中文“你好,世界!”了。
3、注释
当行注释:# 被注释内容
多行注释:'''被注释内容''',或者"""被注释内容"""
4、变量
变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。
4.1声明变量
1 #!/usr/bin/env python 2 #_*_ coding:utf-8 _*_ 3 4 name = "bingbing"
上述代码声明了一个变量
变量名为:name
变量name的值为:“bingbing”
变量的作用:昵称,其代值内存里某个地址中保存的内容
4.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']
变量的定义要具有可描述性。
4.3推荐定义方式
#驼峰体 bingBingBing = 23 HaaaaaaHaaaHaa = 12 #下划线 bing_bing_bing = 23 ha_ha_ha = 12
4.4变量的赋值
#!/usr/bin/env python #_*_ coding:utf-8 _*_ name1 = "bingbing" name2 = "haha"
#!/usr/bin/env python #_*_ conding:utf-8 _*_ name1 = "bingbing" name2 = name1
5、常量
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
6、程序交互(input)
1 #!/usr/bin/env python 2 #-*- coding: utf-8 -*- 3 4 # 将用户输入的内容赋值给 name变量 5 name = input("请输入您的姓名:") 6 age = input("请输入您的年龄:") 7 #打印输入的内容 8 print(name, age)
执行脚本就会发现,程序会等待你输入名字后再往下继续走
7、基础数据类型
7.1、
int(整形)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1
long(长整形)
(python3版本已经没有该类型了,不管多长的数,全部为int类型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
该类型不用用户特别定义,当一个数字大到超过int数据类型的范围后将自动转化为long长整形。
注意:python3版本没有long型了,全部为int类型
1 >>> a= 2**64 2 >>> type(a) #type()是查看数据类型的方法 3 <type 'long'> 4 >>> b = 2**60 5 >>> type(b) 6 <type 'int'>
7.2字符串类型(str)
在python中,加了引号的字符都被认为是字符串
1 name = "bingbing" #双引号 2 age = "23" #只要引号就是字符串 3 age2 = 23 #int 4 5 msg = '''My name is bingbing, I am 23 years old''' #三个引号也可以 6 7 hometown = 'henan' #单引号也可以
单引号、双引号、多引号没有任何区别,只有下面情况下,需要考虑单双的配合
msg = "My name is bingbing, I'm 23 years old"
多行字符串就必须用多引号
1 msg = ''' 2 你瞅啥 3 瞅你咋地 4 你再瞅试试 5 试试就试试 6 ''' 7 print(msg)
字符串拼接
数字可以进行加减乘除等运算
字符串只能进行"相加"和"相乘"运算
>>> name = 'bingbing' >>> age = '23' >>> name + age #相加其实就是简单拼接 'bingbing23' >>> name * 10#相乘其实就是复制自己多少次,再拼接在一起 'bingbingbingbingbingbingbingbingbingbingbingbingbingbingbingbingbingbingbingbing' >>>
注意:字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
7.3布尔值(True, False)
布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
如果a=1,b=2
a<b 计算机就返回True
b>a计算机就返回False
1 >>> a = 1 2 >>> b = 2 3 >>> a < b #成立就是True,即真 4 True 5 >>> a > b #不成立就是False,即假 6 False
8、格式化输出
现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式
------------ info of fuyong ----------- Name : fuyong Age : 29 job : none Hobbie: girl ------------- end -----------------
1 name = input("Name:") 2 age = input("Age:") 3 job = input("Job:") 4 hobbie = input("Hobbie:") 5 6 info = ''' 7 ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 8 Name : %s #代表 name 9 Age : %s #代表 age 10 job : %s #代表 job 11 Hobbie: %s #代表 hobbie 12 ------------- end ----------------- 13 ''' %(name,name,age,job,hobbie) # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 14 15 print(info)
注意:如果字符串里需要出现‘%’的时候,需要用转义符号来实现,如:
msg = "我是%s,年龄%d的,目前学习进度为10%%"%('兵兵', 23)
print(msg)
查看数据类型的方法为type()
如type(1) 的结果为int type('a')的结果为str
如果一个变量位阿拉伯数字,则该数据可以在int类型与str类型之间互相转换
9、基本运算符
算数运算
比较运算
赋值运算
逻辑运算
注意:
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。
例题:求出下列逻辑语句的值。
8 or 4 0 and 3 0 or 4 and 3 or 7 or 9 and 6
3、in,not in :
判断子元素是否在原字符串(字典,列表,集合)中:
例如:
1 >>> print("兵兵" in "兵兵你好") 2 True 3 >>> print("b" in "bingbing") 4 True 5 >>> print("y" not in "bingbing") 6 True
10、流程控制--if
if--else语句
单分支
if 条件: 满足条件后要执行的代码
双分支
1 """ 2 if 条件: 3 满足条件执行代码 4 else: 5 if条件不满足就走这段 6 """ 7 8 age = 23 9 10 if age <60: 11 print("我还能继续工作") 12 else: 13 print("该退休了")
if语句也可以嵌套使用
1 name = input('请输入用户名:') 2 password = input('请输入您的密码') 3 if name == 'fuyong' : 4 if password == '123' 5 print('恭喜您,登录成功') 6 else: 7 print('抱歉,用户名或者密码错误!')
缩进
Python的缩进有以下几个原则:
- 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
- 同一级别的代码,缩进必须一致
- 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
多分支
回到流程控制上来,if...else ...可以有多个分支条件
1 if 条件: 2 满足条件执行代码 3 elif 条件: 4 上面的条件不满足就走这个 5 elif 条件: 6 上面的条件不满足就走这个 7 elif 条件: 8 上面的条件不满足就走这个 9 else: 10 上面所有的条件不满足就走这段
1 num = input('请输入一个数字'): 2 3 if num == 1: 4 5 print("您选择的是1号") 6 7 elif num == 2: 8 9 print("您选择的是2号") 10 11 elif num == 3: 12 13 print('您选择的是3号') 14 15 else: 16 print('输入有误,请在1、2、3中选择')
11、流程控制--while
11.1,基本循环
1 while 条件: 2 3 # 循环体 4 # 如果条件为真,那么循环体则执行 5 # 如果条件为假,那么循环体不执行
11.2,循环中止语句
break用于完全结束一个循环,跳出循环体执行循环后面的语句
ontinue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
例如break
1 count = 0 2 while count <= 100: #只要count<=100就不断执行下面的代码 3 print(count) 4 5 if count == 5: 6 break 7 count += 1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
例如continue
1 count = 0 2 while count <= 100: 3 count += 1 4 if count > 5 and count < 95: #只要count在6-94之间,就不走下面print语句,直接进入下一次 5 continue 6 print(count)
11.3while...else...
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
1 count = 0 2 while count <= 5: 3 count += 1 4 print(count) 5 else: 6 print("循环正常执行完啦")
如果执行过程中被break啦,就不会执行else的语句啦
1 count = 0 2 while count <= 5: 3 count += 1 4 if count == 3: 5 break 6 print(count) 7 else: 8 print("循环正常执行完啦")
四、练习题
1、使用while循环输入 1 2 3 4 5 6 8 9 10
1 sum = 0 2 while sum < 10: 3 sum += 1 4 if sum == 7: 5 print(" ") 6 continue 7 print(sum)
2、求1-100的所有数的和
1 a = 0 2 sum = 0 3 while a <= 100: 4 sum += a 5 a += 1 6 print(sum)
3、输出 1-100 内的所有奇数
1 a = 1 2 while a <= 100: 3 if a % 2 == 1: 4 print(a) 5 a += 1
4、输出 1-100 内的所有偶数
1 a = 1 2 while a <= 100: 3 if a % 2 == 0: 4 print(a) 5 a += 1
5、求1-2+3-4+5 ... 99的所有数的和
1 a = 1 2 sum = 0 3 while a <= 100: 4 if a % 2 == 1: 5 sum -= a 6 else: 7 sum += a 8 a += 1 9 print(sum)
6、用户登陆(三次机会重试)
---恢复内容结束---
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Day_05 字典知识整理
- Python基础总结之初步认识---class类的继承(终)。第十六天 2019-08-13
- 基于tornado---异步并发接口 2019-07-24
- python第三天---列表的魔法 2019-07-24
- python第二天---字符串的魔法 2019-07-24
- python第一天---我要入个门 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash