一、Python基础一

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdnlinyongsheng/article/details/80408280

本章内容

1.python介绍

2.发展史

3.Python 2 or 3?

4.安装

5.Hello world程序 

6.变量

7.用户输入

8.模块初始

9. .py是什么东西?

10.数据类型

11.数据运算

12.表达式if.. else语句

13.表达式for循环语句 

14.表达式 while循环语句 

15.break and continue的使用

一、Python介绍

        Python的创始人吉多.范罗苏姆(Guido var Rossum)。 1989年的圣诞节期间,吉多。范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本程序,作为ABC语言的继承。

根据最新的TIOBE排行版显示,占据了前五名。Python语言受到越来越多的程序员青睐,Python语言崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

目前Python主要应用领域:

    云计算:云计算最火的语言,典型应用OpenStack;

    Web开发:众多优秀的Web框架,众多大型网站均为Python开发,如:YouTube, 豆瓣等;

    科学运算, 人工智能:典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

    系统运维:运维人员必备的语言;

    金融:量化交易,金融分析。

大量使用的原因:Python语言结构清晰,库丰富,成熟稳定,科学计算和统计分析都很好,生产效率高于c,c++,java,尤其策略回测;

    图形GUI:PyQT, WxPython, TkInter。

目前企业应用Python的有如下:

Google:Google App Engine、 code.google.com、Google earth、谷歌爬虫、Google广告等;

CIA:美国中央情报局;

NASA:美国航天局;

YouTube:世界上最大的视频网站;

FaceBook:大师基础库是通过Python实现的;

豆瓣、淘宝、腾讯、百度、网易等

2,python是什么编程语言。

编程语言主要从以下角度为进行分类:

1.编译型;

2.解释型;

3.静态语言;

4.动态语言;

5.强类型定义语言;

6.弱类型定义语言

2.1 编译型与解释型。

编译器是把源程序的每条语句都编译成机器语言,并保存成二进制语言,运行时计算机直接以机器语言来运行此程序,运行速度很快; 

解释型是在执行程序时,一条一条的解释成机器语言让计算机来执行,运行速度不及编译型语言;

编译型与解释型优缺点:

编译型优点:

        编译器有预编译的过程会对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言执行效率高。可以脱离语言环境独立运行。

缺点:

         编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型优点:

有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。修改代码的时候可以直接修改,可以快速部署,不用停机维护。

缺点:

         每次运行的时候都要解释一遍,性能上不如编译型语言。

强制类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

python是一门动态解释性的强类型定义语言。

Python的优缺点:

优点:

1.简单易懂;

2.开发效率高 ——Python有非常强大的第三方库,基本上想实现的功能,可从Python官方库里找到相应的模块,可以直接下载调用,可在其基础上进行开发,有利于降低开发周期,减少重复;

3.高级语言——编写程序时,无需考虑内存底层的细节;

4.可移植性——由于它开源的本质,Python可以在其它系统平台上运行;

5.可扩展性——可以给对象添加新属性;

6.可嵌入性——可以嵌入C/C++程序,向你的用户程序提供脚本功能;

缺点:

1.速度慢——如果有对速度较高的要求,可用C语言实现;

2.代码不能加密——因为Python是解释性语言,它的源码是以名文形式存放的;

3.线程不能利用多CPU问题;

4.Python的种类

1.CPython——安装好Python后,直接获得一个官方版本的解释器:CPython。此解释器是用C语言开发。在DOS窗口下运行的python就是CPython解释器;

2.IPthon——它是基于CPython之上的一个交互式解释器;

3.PyPy——提高执行速度,采用JIT技术,对Python代码进行动态编译(注意不是解释)

4.Jython——它是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java代码执行;

5.IronPython——它与Jython类似,只不过是运行在微软.Net平台上的Python解释器;可以直接把Python代码 编译成.Net的字节码;

总结:

Python解释器有很多种,但使用最广泛的是CPython。 如果要和JAVA或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保程序之间的独立性。

二、Python安装及环境

本人系统windows64位为例,下载 Windows x86-64 executable installer(里面包含配置环境变量);

具体就不一一详细解释了。

三、Python基础初识

1.运行Python代码

在这激动人心的时刻到了,我们来写自己的第一个程序吧。

1.首先我们在磁盘里创建一个first.py文件,如图:

2.解释器

3.内容编码

Python2默认编码为ASCII,Pythone3默认编码为utf-8。

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套编码系统,主要用于现代英语和西欧语言,其最多只能用8位表示一个字节,即2**8 = 256,所以ASCII最多只能表示256个符号。

Bin(二进制)

Oct(八进制)

Dec(十进制)

Hex(十六进制)

缩写/字符

解释

0000 0000

0

0

00

NUL(null)

空字符

0000 0001

1

1

01

SOH(start of headline)

标题开始

0000 0010

2

2

02

STX (start of text)

正文开始

0000 0011

3

3

03

ETX (end of text)

正文结束

0000 0100

4

4

04

EOT (end of transmission)

传输结束

0000 0101

5

5

05

ENQ (enquiry)

请求

0000 0110

6

6

06

ACK (acknowledge)

收到通知

0000 0111

7

7

07

BEL (bell)

响铃

0000 1000

10

8

08

BS (backspace)

退格

0000 1001

11

9

09

HT (horizontal tab)

水平制表符

0000 1010

12

10

0A

LF (NL line feed, new line)

换行键

0000 1011

13

11

0B

VT (vertical tab)

垂直制表符

0000 1100

14

12

0C

FF (NP form feed, new page)

换页键

0000 1101

15

13

0D

CR (carriage return)

回车键

0000 1110

16

14

0E

SO (shift out)

不用切换

0000 1111

17

15

0F

SI (shift in)

启用切换

0001 0000

20

16

10

DLE (data link escape)

数据链路转义

0001 0001

21

17

11

DC1 (device control 1)

设备控制1

0001 0010

22

18

12

DC2 (device control 2)

设备控制2

0001 0011

23

19

13

DC3 (device control 3)

设备控制3

0001 0100

24

20

14

DC4 (device control 4)

设备控制4

0001 0101

25

21

15

NAK (negative acknowledge)

拒绝接收

0001 0110

26

22

16

SYN (synchronous idle)

同步空闲

0001 0111

27

23

17

ETB (end of trans. block)

结束传输块

0001 1000

30

24

18

CAN (cancel)

取消

0001 1001

31

25

19

EM (end of medium)

媒介结束

0001 1010

32

26

1A

SUB (substitute)

代替

0001 1011

33

27

1B

ESC (escape)

换码(溢出)

0001 1100

34

28

1C

FS (file separator)

文件分隔符

0001 1101

35

29

1D

GS (group separator)

分组符

0001 1110

36

30

1E

RS (record separator)

记录分隔符

0001 1111

37

31

1F

US (unit separator)

单元分隔符

0010 0000

40

32

20

(space)

空格

0010 0001

41

33

21

!

叹号

0010 0010

42

34

22

"

双引号

0010 0011

43

35

23

#

井号

0010 0100

44

36

24

$

美元符

0010 0101

45

37

25

%

百分号

0010 0110

46

38

26

&

和号

0010 0111

47

39

27

'

闭单引号

0010 1000

50

40

28

(

开括号

0010 1001

51

41

29

)

闭括号

0010 1010

52

42

2A

*

星号

0010 1011

53

43

2B

+

加号

0010 1100

54

44

2C

,

逗号

0010 1101

55

45

2D

-

减号/破折号

0010 1110

56

46

2E

.

句号

00101111

57

47

2F

/

斜杠

00110000

60

48

30

0

数字0

00110001

61

49

31

1

数字1

00110010

62

50

32

2

数字2

00110011

63

51

33

3

数字3

00110100

64

52

34

4

数字4

00110101

65

53

35

5

数字5

00110110

66

54

36

6

数字6

00110111

67

55

37

7

数字7

00111000

70

56

38

8

数字8

00111001

71

57

39

9

数字9

00111010

72

58

3A

:

冒号

00111011

73

59

3B

;

分号

00111100

74

60

3C

<

小于

00111101

75

61

3D

=

等号

00111110

76

62

3E

>

大于

00111111

77

63

3F

?

问号

01000000

100

64

40

@

电子邮件符号

01000001

101

65

41

A

大写字母A 

01000010

102

66

42

B

大写字母B

01000011

103

67

43

C

大写字母C

01000100

104

68

44

D

大写字母D

01000101

105

69

45

E

大写字母E

01000110

106

70

46

F

大写字母F

01000111

107

71

47

G

大写字母G

01001000

110

72

48

H

大写字母H

01001001

111

73

49

I

大写字母I

01001010

112

74

4A

J

大写字母J

01001011

113

75

4B

K

大写字母K

01001100

114

76

4C

L

大写字母L

01001101

115

77

4D

M

大写字母M

01001110

116

78

4E

N

大写字母N

01001111

117

79

4F

O

大写字母O

01010000

120

80

50

P

大写字母P

01010001

121

81

51

Q

大写字母Q

01010010

122

82

52

R

大写字母R

01010011

123

83

53

S

大写字母S

01010100

124

84

54

T

大写字母T

01010101

125

85

55

U

大写字母U

01010110

126

86

56

V

大写字母V

01010111

127

87

57

W

大写字母W

01011000

130

88

58

X

大写字母X

01011001

131

89

59

Y

大写字母Y

01011010

132

90

5A

Z

大写字母Z

01011011

133

91

5B

[

开方括号

01011100

134

92

5C

\

反斜杠

01011101

135

93

5D

]

闭方括号

01011110

136

94

5E

^

脱字符

01011111

137

95

5F

_

下划线

01100000

140

96

60

`

开单引号

01100001

141

97

61

a

小写字母a 

01100010

142

98

62

b

小写字母b

01100011

143

99

63

c

小写字母c

01100100

144

100

64

d

小写字母d

01100101

145

101

65

e

小写字母e

01100110

146

102

66

f

小写字母f

01100111

147

103

67

g

小写字母g

01101000

150

104

68

h

小写字母h

01101001

151

105

69

i

小写字母i

01101010

152

106

6A

j

小写字母j

01101011

153

107

6B

k

小写字母k

01101100

154

108

6C

l

小写字母l

01101101

155

109

6D

m

小写字母m

01101110

156

110

6E

n

小写字母n

01101111

157

111

6F

o

小写字母o

01110000

160

112

70

p

小写字母p

01110001

161

113

71

q

小写字母q

01110010

162

114

72

r

小写字母r

01110011

163

115

73

s

小写字母s

01110100

164

116

74

t

小写字母t

01110101

165

117

75

u

小写字母u

01110110

166

118

76

v

小写字母v

01110111

167

119

77

w

小写字母w

01111000

170

120

78

x

小写字母x

01111001

171

121

79

y

小写字母y

01111010

172

122

7A

z

小写字母z

01111011

173

123

7B

{

开花括号

01111100

174

124

7C

|

垂线

01111101

175

125

7D

}

闭花括号

01111110

176

126

7E

~

波浪号

01111111

177

127

7F

DEL (delete)

删除

ASCII无法满足各国文字符号的需求,这里国际通用编码诞生了,它就是就utf-8。

UTF-8是对Unicode编码压缩和优化,将所有的字符和符号进行分类:Ascii编码中的内容用一个字节保存,欧洲字符用2个字节保存,东亚的字节用3个字符保存。

4.注释

当行注释: #;

多行注释: ''' 注释内容 

                          注释内容

                    ‘’‘

5.变量

5.1.声明,代码如下:

name = "Mike"

变量名为:name,变量值为: “Mike"

5.2.把数据存储到内存地址,如图所示:

5.3变量定义规则:

1.变量名只能是字母、数字、下划线任意组合;

2.变量名的第一个字符不能是数字;

3.关键字不能声明为变量名,如下:

['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.变量的定义具有可描述性。

5.4变量赋值:

name1 = "wupeng"

name2 = "wupeng2"

6.常量

常量指不变的量,即在程序运行过程中不改变的量,常量名是程序员约定俗成的声明全部大写,代码如下:

AGE_OF_OLDBOY = 56

7.程序交互

代码如下:

name  = input("请输入用户名:");

#打印内容

print(name);

8.数据类型

人类能区分数字和字符的区别,但计算机不能。因此我们需要数据类型来告诉计算机识别数据类型。接下来主要介绍几种类型:

8.1整数类型

int(整型):

在32位系统上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

#bit_length()获取比特长度,代码如下:

v = 11;
data = v.bit_length();
print(data);

long(长整型):

Python的长整数没有限制。即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

注意:在Python3里不再有long类型了,全都是int

代码示例:

age = 13

print(type(age));

8.2字符串类型

在Python中加了引号的内容都是字符串,代码示例:

name = "John"

8.2.1字符串拼接:

数字可以加减乘除,同样的道理字符串也可以,代码示例如下:

name = "John";

age = '23';

print(name + age);

-------------------------------------------

print(name * 10))  #输出结果 JohnJohnJohnJohnJohnJohnJohnJohnJohnJohn

#注意:字符串拼接双方只能是字符串,不能是数据类型

8.2.2字符串索引与切片

 索引即下标,字符串组成的元素从第一个开始,初始索引为0以此类推。

a = 'ABCDEFGHIJK'
print(a[0])
print(a[3])
print(a[5])
print(a[7])

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长

8.2.3字条串常用方法

#captalize,swapcase,title
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg='egon say hi'
print(msg.title()) #每个单词的首字母大写

# 内同居中,总长度,空白处填充
ret2 = a1.center(20,"*")  
print(ret2)

#数字符串中的元素出现的个数。
# ret3 = a1.count("a",0,4) # 可切片
# print(ret3)

a2 = "hqw\t"
#\t前面的补全
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
ret4 = a2.expandtabs()
print(ret4)

a4 = "dkfjdkfasf54"
#startswith 判断是否以...开头
#endswith 判断是否以...结尾
# ret4 = a4.endswith('jdk',3,6)  # 顾头不顾腚
# print(ret4)  # 返回的是布尔值
# ret5 = a4.startswith("kfj",1,4)
# print(ret5)

#寻找字符串中的元素是否存在
# ret6 = a4.find("fjdk",1,6)
# print(ret6)  # 返回的找到的元素的索引,如果找不到返回-1

# ret61 = a4.index("fjdk",4,6)
# print(ret61) # 返回的找到的元素的索引,找不到报错。

#split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
# ret9 = 'title,Tilte,atre,'.split('t')
# print(ret9)
# ret91 = 'title,Tilte,atre,'.rsplit('t',1)
# print(ret91)

#format的三种玩法 格式化输出
res='{} {} {}'.format('egon',18,'male')
res='{1} {0} {1}'.format('egon',18,'male')
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)

#strip
name='*egon**'
print(name.strip('*')) 
print(name.lstrip('*'))
print(name.rstrip('*'))

#replace
name='alex say :i have one tesla,my name is alex'
print(name.replace('alex','SB',1))

#####is系列
name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成

8.3布尔值

布尔值分为两种:1.True(真); 2.False(假)。

主要用来进行逻辑判断 

8.4元祖tuple

元祖被称为只读列表,可以查询数据,但不能修改数据,字符串的切片操作同样适用于元祖。例:(1, 2,3) ("a","b","c")

8.5列表list

列表是python数据类型之一,它类似于其它编程语言的数组,里面可存放各种数据类型,32位python的取值范围是 536870912 个元素,64位python的取值范围是是 1152921504606846975 个元素,且列表是有序的、有索引、可切片、方便取值。代码示例:

li = ['alex', 123, True]

8.5.1 增

li = [1,'a','b',2,3,'a']
# li.insert(0,55) #按照索引去增加
# print(li)
#
# li.append('aaa') #增加到最后
# li.append([1,2,3]) #增加到最后
# print(li)
#
# li.extend(['q,a,w']) #迭代的去增
# li.extend(['q,a,w','aaa'])
# li.extend('a')
# li.extend('abc')
# li.extend('a,b,c')
# print(li)

列表的增

8.5.2 删

# l1 = li.pop(1) #按照位置去删除,有返回值
# print(l1)

# del li[1:3] #按照位置去删除,也可切片删除没有返回值。
# print(li)

# li.remove('a') #按照元素去删除
# print(li)

# li.clear() #清空列表

8.5.3 改

# 改
# li = [1,'a','b',2,3,'a']
# li[1] = 'dfasdfas'
# print(li)
# li[1:3] = ['a','b']
# print(li)

8.5.4 查

切片去查,或者循环去查。

a = ['a', 'b', 'c', 'd'];
print(a[0]);
print(a[0:3]);

8.5.5 其它操作

count——统计某个元素在列表中出现的次数

a = ["q","w","q","r","t","y"]
print(a.count("q"))

index——找到列表里的值,并获取第一个索引位置

a = ["q","w","r","t","y"]
print(a.index("r"))

sort——对列表进行排序

li = [8, 2, 1, 9, 5, 4, 2];
li.sort();
print(li);

reverse——将列表中的元素反方向排序

li = [8, 2, 1, 9, 5, 4, 2];
li.reverse();
print(li);

8.6字典dict

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。Python对Key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且Key必须是可哈希的。哈希函数是不可变的类型。

字典与列表的区别:

1.字典是Python中最灵活的内置数据结构类型;

2.字典是无序的对象集合,而列表是有序的对象集合;

3.字典通过键来存取的,而列表是通过索引位置来存取的。

8.6.1 增

# dic['li'] = ["a","b","c"]
# print(dic)
# setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
# dic.setdefault('k','v')
# print(dic)  # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
# dic.setdefault('k','v1')  # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
# print(dic)

8.6.2 删

# dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
# print(dic_pop)
# del dic["name"]  # 没有返回值。
# print(dic)

# dic_pop1 = dic.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
# print(dic_pop1)  # ('name','jin')

# dic_clear = dic.clear()  # 清空字典
# print(dic,dic_clear)  # {} None

8.6.3 改

# 改
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
# print(dic2)

8.6.4 查

# value1 = dic["name"]  # 没有会报错
# print(value1)
#
# value2 = dic.get("djffdsafg","默认返回值")  # 没有可以返回设定的返回值
# print(value2)

8.6.5 字典循环

# dic = {"name":"jin","age":18,"sex":"male"}
# for key in dic:
#     print(key)
# for item in dic.items():
#     print(item)
# for key,value in dic.items():
#     print(key,value)

8.6.6 其它操作

# item = dic.items()
# print(item,type(item))  # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'>
# 这个类型就是dict_items类型,可迭代的

# keys = dic.keys()
# print(keys,type(keys))  # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'>

# values = dic.values()
# print(values,type(values))  # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上

三.数据类型总结

按存储空间的占用分(从低到高)

数字
字符串
集合:无序,即无序存索引相关信息
元组:有序,需要存索引相关信息,不可变
列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

按存值个数区分

标量/原子类型 数字,字符串
容器类型 列表,元组,字典

按可变不可变区分

可变 列表,字典
不可变 数字,字符串,元组,布尔值

按访问顺序区分

直接访问 数字
顺序访问(序列类型) 字符串,列表,元组
key值访问(映射类型) 字典

 

 

 

9.格式化输出

%s表示字符串格式;%d表示整型格式 

代码如下:

name = input("Name:")
age = int(input("Age:"))#强制转换整数类型
print(age);
job = input("Job:")
hobbie = input("Hobbie:")

info = '''
------------ info of  ----------- #这里的每个就是一个占位符,本行的代表 后面拓号里的 name 
Name  : %s  #代表 name 
Age   : %d  #代表 age  
job   : %s  #代表 job 
Hobbie: %s  #代表 hobbie 
------------- end -----------------
''' %(name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 

print(info)

10.基本运算符

运算种类:

10.1算数运算

10.2比较运算

10.3赋值运算

10.3逻辑运算

总结:在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

and 一真必真,一假必假;

or 一假必假。

10.5成员运算

判断子元素是否在原字符串(字典,列表,集合)中,代码如下:

#print('喜欢' in 'dkfljadklf喜欢hfjdkas')
#print('a' in 'bcvd')
#print('y' not in 'ofkjdslaf')

10.6身份运算

10.7位运算

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

11.流程控制--if

人这一辈子要做出很多判断,例如:选择奋斗,你就拉近了成功的距离; 选择玩乐,你这一辈子碌碌无为。

if...else...

单分支

if 条件满足:

  满足条件后要执行的内容

-----------------------------------------------------------------

if 条件满足:

  满足条件后要执行的内容

else 条件不满足:

  不满足条件后要执行的内容

注意:缩进

多分支

if 条件:
    满足条件执行代码
elif 条件:
    上面的条件不满足执行此代码
elif 条件:
    上面的条件不满足执行此代码
elif 条件:
    上面的条件不满足执行此代码    
else:
    上面所有的条件不满足执行此代码

示例代码如下:

age_of_oldboy = 48

guess = int(input(">>:"))

if guess > age_of_oldboy :
    print("猜的太大了,往小里试试...")

elif guess < age_of_oldboy :
    print("猜的太小了,往大里试试...")

else:
    print("恭喜你,猜对了...")

12.流程控制--while

while 条件:

    # 循环体

    # 如果条件为真,则执行

    # 如果条件为假,则不执行

中止语句:

1.break——跳出整个循环,后面语句不再执行;

count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
    print("loop ", count)
    if count == 5:
        break
    count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0

print("-----out of while loop ------")

2.continue——跳出本次循环,继续下一个循环。

count = 0
while count <= 100 : 
    count += 1
    if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
        continue 
    print("loop ", count)

print("-----out of while loop ------")

while...else...

当while循环执行正常时,中间没有break中断时,则执行else语句;如果被break中断,则不执行else语句。代码示例如下:

count = 0
while count <= 5 :
    count += 1
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")

四.其它(for, enumerate,range)

for:用户按照顺序循环可迭代对象的内容。

msg = '中国女神'
for item in msg:
    print(item)

li = ['alex','银角','女神','egon','小白']
for i in li:
    print(i)

dic = {'name':'小白','age':18,'sex':'man'}
for k,v in dic.items():
    print(k,v)

enumerate(枚举):对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

li = ['alex','银角','女神','egon','太白']
for i in enumerate(li):
    print(i)
for index,name in enumerate(li,1):
    print(index,name)
for index, name in enumerate(li, 100):  # 起始位置默认是0,可更改
    print(index, name) 

range:指定范围,生成指定数字。

for i in range(1,10):
    print(i)

for i in range(1,10,2):  # 步长
    print(i)

for i in range(10,1,-2): # 反向步长
    print(i)

下一章  Python集合、深浅Copy

猜你喜欢

转载自blog.csdn.net/csdnlinyongsheng/article/details/80408280