python01

2018-07-09 13:28:40来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

---恢复内容开始---

一、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("该退休了")
View Code

if语句也可以嵌套使用

1 name = input('请输入用户名:')
2 password = input('请输入您的密码')
3     if name == 'fuyong' :
4             if password == '123'
5                 print('恭喜您,登录成功')
6     else:
7         print('抱歉,用户名或者密码错误!')   
if嵌套
缩进

Python的缩进有以下几个原则:

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  • 同一级别的代码,缩进必须一致
  • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
多分支
回到流程控制上来,if...else ...可以有多个分支条件
 1 if 条件:
 2     满足条件执行代码
 3 elif 条件:
 4     上面的条件不满足就走这个
 5 elif 条件:
 6     上面的条件不满足就走这个
 7 elif 条件:
 8     上面的条件不满足就走这个    
 9 else:
10     上面所有的条件不满足就走这段
View Code
 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中选择')
if多分支

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
break

例如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)
continue

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("循环正常执行完啦")
while...else...

如果执行过程中被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("循环正常执行完啦")
while..else..break

四、练习题

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)
答案1

2、求1-100的所有数的和

1 a = 0
2 sum = 0
3 while a <= 100:
4     sum += a
5     a += 1
6 print(sum)
答案1

3、输出 1-100 内的所有奇数

1 a = 1
2 while a <= 100:
3     if a % 2 == 1:
4         print(a)
5     a += 1
答案1

4、输出 1-100 内的所有偶数

1 a = 1
2 while a <= 100:
3     if a % 2 == 0:
4         print(a)
5     a += 1
答案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)
答案1

 

6、用户登陆(三次机会重试)

---恢复内容结束---

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Day_05 字典知识整理

下一篇:python Requests库入门