python语言提供的三个基本数据类型是_[Python语言程序设计]第三周 基本数据类型 · Secret114的小站...

辅学内容

前课复习

Python基本语法元素缩进、注释、命名、变量、保留字

数据类型、字符串、整数、浮点数、列表

赋值语句、分支语句、函数

input()、print()、eval()、print()格式化

Python基本图形绘制从计算机技术演进角度看待Python语言

海龟绘图体系及import保留字用法

penup()、pendown()、pensize()、pencolor()

fd()、circle()、seth()

循环语句:for和in、range()函数

保留字保留字

and

elif

import

raise

global

as

else

in

return

nonlocal

assert

except

is

try

True

break

finally

lambda

while

False

class

for

not

with

None

continue

from

or

yield

def

if

pass

del

* 其中加粗字体为课程不涉及保留字

从上面看Python的保留字还比较多,而且课程需要记忆(26/32)个保留字,短时间着实有点困难。但是仔细观察后我们可以发现,其实Python保留字和C的主要关键字差不多,可以按照分类方法进行记忆:

引入、声明:import、from、def、global

条件判断:if、else、elif、for、while、break、continue

布尔判断:and、or、not、None、True、False

异常捕获:try、finally、except

其他:print、return、as、in、del、lambda

这样就可以很轻松记住所有的保留字了~

另外,如果保留字忘了怎么办?别担心,在python命令行中输入:

1

2

3>import keyword

>keyword.kwlist

>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72>*参考:http://www.51testing.com/html/72/502872-3709423.html*

#### 实例:温度转换

#### 实例:蟒蛇绘制

### 本课概要

#### 基本数据类型

- 3.1 数字类型及操作

- 3.2 实例3: 天天向上的力量

- 3.3 字符串类型及操作

- 3.4 模块2: time库的使用

- 3.5 实例4: 文本进度条

#### 方法论

- Python语言数字及字符串类型

#### 实践能力

- 初步学会编程进行字符类操作

### 练习与作业

- 练习 (可选)

- 5道编程题 @Python123

- 作业

- 15道单选题 @Python123

## 数字类型及操作

### 整数类型

- 可正可负,没有取值范围限制

- `pow(x,y)`函数:计算xy,想算多大算多大

- 4种进制

- 十进制

- 二进制(`0b`或`0B`开头)

- 八进制(`0o`或`0O`开头)

- 十六进制(`0x`或`OX`开头)

### 浮点数类型

- 浮点数取值范围和小数精度都存在限制,但常规计算可忽略

- 取值范围数据量级约-10308至10308,精度数据量级10-16

- `round(x,d)`函数:对`x`四舍五入,`d`为小数截取位数

- 浮点数间运算比较用`round()`函数辅助

- 不确定尾数一般发生在10-16左右,`round()`十分有效

- 用`e`或`E`作为幂的符号,以10为基数`e`,表示a*10b

**浮点数间运算存在不确定尾数,并不是BUG!**

### 复数类型

- `a+bj`称为复数,其中`a`是实部,`b`是虚部

### 数值运算操作符

- 基本操作有`+`、`-`、`*`、`/`、`//`(整数除)、`%`、`**`(幂运算)

- 其他另有增强型运算,即x `op` = y

>这里注意`/`,与C语言(或其他语言)不同,Pyhton里的除并不意味着整除,当除不尽的时候,Python会依旧除下去并保留有小数点后的内容

#### 数字类型的关系

- 类型之间可以进行混合运算,结果生成为“最宽”类型

- 整型<浮点型<复数

### 数值运算函数

- `abs(x)`:绝对值

- `divmod(x,y)`:商余(`x//y`,`x%y`),同时输出商和余数

- `pow(x,y[, z])`:幂余,xy%z

- `round(x[, d])`:四舍五入,其中`d`是保留小数位数

- `max(x1,x2,...,xn)`:最大值

- `min(x1,x2,...,xn)`:最小值

- `int(x)`:将`x`变成整数

- `float(x)`:将`x`变成浮点数

- `complex(x)`:将`x`变成复数,并增加虚数部分

## 实例:天天向上

### 1. 1‰的力量

#DayDayUpQ1.py

dayup = pow(1.001,365)

daydown = pow(0.999,365)

print(“向上:{:.2f},向下:{:.2f}”.format(dayup,daydown))

1

2

3

4![运行结果](http://wx3.sinaimg.cn/mw690/83f4f5acgy1fqlmcj1kwqj20m90bodgv.jpg)

### 2. 5‰的力量

#DayDayUpQ2.py

dayfactor = 0.005

dayup = pow(1 + dayfactor, 365)

daydown = pow(1 - dayfactor,365)

print(“向上:{:.2f},向下:{:.2f}”.format(dayup,daydown))

1

2

3

4

5![运行结果](http://wx4.sinaimg.cn/mw690/83f4f5acgy1fqlmigmw20j20m90bowel.jpg)

### 3. 工作日的力量

#DayDayUpQ3.py

dayup = 1.0

dayfactor = 0.01

for i in range(365):

if i % 7 in [6,0]:

dayup = dayup(1-dayfactor)

else:

dayup = dayup(1+dayfactor)

print(“工作日的力量:{:.2f} “.format(dayup))

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46## time库的使用

time库是Python中处理时间的标准库,主要用于时间表达、提供获取系统时间并格式化输出的功能、系统级精确计时功能(用于程序性能分析)等。

### 获取时间

| 函数 | 描述 | 例子 | 结果 | 备注 |

|:-:|:-:|:-:|:-:|:-:|

| time() | 获取当前时间戳,即计算机内部时间值(浮点数) | time.time() | 1525005465.686246 | |

| ctime() | 获取当前时间并以易读方式表示(字符串) | time.ctime() | 'Sun Apr 29 20:39:50 2018'| 程序员易理解 |

| gmtime() | 获取当前时间,表示为计算机可处理的时间格式 | time.gmtime() | time.struct_time(tm_year=2018, tm_mon=4, tm_mday=29, tm_hour=12, tm_min=41, tm_sec=43, tm_wday=6, tm_yday=119, tm_isdst=0) | 程序之间易用的格式 |

### 时间格式化

|函数|描述|例子|结果|备注|

|:-:|:-:|:-:|:-|:-:|

| strftime(tpl,ts) | tpl是格式化模板字符串,用来定义输出结果
ts是计算机内部时间类型变量 | t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t) | '2018-04-29 12:46:34' ||

| 格式化字符串| 日期/事件说明|值范围和实例|

|:-:|:-:|:-:|

|%Y|年份|0000~9999,如:2018|

|%m|月份|01~12,如:10|

|%B|月份名称|January~December,例如:April|

|%b|月份缩写|Jan~Dec,例如:Apr|

|%d|日期|01~31,例如:25|

|%A|星期|Monday~Sunday,例如:Wednesday|

|%a|星期缩写|Mon~Sun,例如:Wed|

|%H|小时(24时制)|00~23,例如:17|

|%h|小时(12时制)|01~12,例如:05|

|%p|上/下午|AM/PM|

|%M|分钟|00~59,例如:26|

|%S|秒钟|00~59,例如:23|

### 程序计时应用

程序计时主要包括测量时间`perf_counter()`和产生时间`sleep()`

|函数|描述|例子|

|:-:|:-:|:-:|

|perf_counter()|返回一个CPU级别的精确时间计数值,由于计数起点不确定,所以连续使用差值才有意义|start=perf_counter();
end=perf_counter();
dur=end-start;|

|sleep(s)|s是拟休眠时间,单位秒|sleep(0.1)|

## 实例4:文本进度条

### 简单开始

import time

scale = 10

print(“——执行开始——“) # 这步显得有些繁琐,可以进行简化

for i in range(scale + 1): # 从0~11循环展示进度条内容

a = ‘*’ * i

b = ‘.’ * (scale - i)

c = (i / scale) * 100

print(“r{:^5.0f}%[{}->{}]”.format(c, a, b)) # 字符串相关格式(居中,5个字符宽度)

time.sleep(0.1) # 代码休眠0.1秒

print(“——执行结束——“)

1

2执行结果:

——执行开始——

0 %[->……….]

10 %[->………]

20 %[*->……..]

30 %[->…….]

40 %[*->……]

50 %[->…..]

60 %[*->….]

70 %[***->…]

80 %[****->..]

90 %[*****->.]

100 %[**->]

——执行结束——

1

2

3### 完整效果

3.5_TextProBarV3.py

import time

scale = 50

print(“执行开始”.center(scale // 2, “-“)) # 使用字符串.center()方法

start = time.perf_counter() # 增加计时效果

for i in range(scale + 1):

a = ‘*’ * i

b = ‘.’ * (scale - i)

c = (i / scale) * 100

dur = time.perf_counter() - start # 需要打印的计时时间

print(“r{:^3.0f}%[{}->{}]{:.2f}s”.format(c, a, b, dur), end=’’) # 字符串各种处理

time.sleep(0.1)

print(“n” + “执行结束”.center(scale // 2, ‘-‘))

1

2执行结果(最终结果):

———–执行开始———-

100%[**->]5.02s

———–执行结束———-

1

2>最终的这段代码包含了字符串、时间处理的各种操作和方法,需要熟练掌握

你可能感兴趣的:(python语言提供的三个基本数据类型是_[Python语言程序设计]第三周 基本数据类型 · Secret114的小站...)