Python-一级3

Python 中基本数据类型

 mindmap
 (本课知识点)
  [Python 中基本数据类型]
    ))数值类型((
      )① **整数类型**(
      )浮点数类型(
    ))字符串类型((
    ))布尔类型((
  [Python 中数据类型之间的转换]
  ["eval() 函数的使用"]
  [了解不同的进制数]
  [掌握 Python 中常用的运算符及优先级]

Python 是弱类型的动态语言

数值类型

整数类型

整数类型表示的数值是不包含小数的数值,包括正整数、负整数和零
理论上来讲,整数的取值范围是从 $+\infty$ ~ $-\infty$

【电子学会三级考试内容】:能够进行二进制、十进制以及十六进制之间的转换;

进制类型 引导符号 示例
十进制 123
八进制 0o或0O 由0-7数字组成,如0o712
二进制 0b或0B 由0-1数字组成,如0b0101
十六进制 0x或OX 由0-9和a-f/A-F 组成,如 0x987a
1
2
3
4
5
6
7
8
9
num = 68 # 十进制数
num_0b = 0b1000100 # 二进制
num_0x = 0x44 # 十六进制
num_0o = 0o104 # 八进制

print(num) # 68
print(num_0b) # 68
print(num_0x) # 68
print(num_0o) # 68

浮点数类型

表示带有小数点的数值,由整数部分和小数部分组成。

1
2
3
4
5
6
version = 3.5
print(version) # 3.5

# 科学计数法
num = 1E1 # 1*10^1
print(num) # 10

两个浮点类型的数进行运算时,有一定概率运算结果后增加一些不确定的尾数

1
2
num = 0.1 + 0.2
print(num) # 0.30000000000000004

复数:Python 中的复数,与数学中的复数形式完全一致,由实数和虚数组成
Python 中的实数部分使用 .real 表示,虚数部分使用 .imag 表示

1
2
3
x = 123 + 456j
print('实数部分', x.real) #实数部分 123.0
print('虚数部分', x.imag) #虚数部分 456.0

整数与浮点数

1
2
3
4
5
length = 10
length_f = 10.0

print('length 数据类型', type(length)) # int
print('length 数据类型', type(length_f)) # float

字符串类型

字符串是连续的字符序列,可以识别计算机所能识别的一切字符。
字符串的界定符:单引号,双引号,三引号
注意:引号不能交叉使用。即不能 'hello", "hello'

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
name = 'Guido van Rossum'
college = "阿姆斯特丹大学"

print(name, college) # Guido van Rossum 阿姆斯特丹大学

info_python = '''
name: Guido van Rossum
college: 阿斯特丹大学
citizenship: America, Dutch
'''
info_scratch = """
name: Mitchel Resnick,
college: 麻省理工大学
citizenship: America
"""
"""
name: Guido van Rossum
college: 阿斯特丹大学
citizenship: America, Dutch
"""
print(info_python)
'''
name: Mitchel Resnick,
college: 麻省理工大学
citizenship: America
'''
print(info_scratch)

转义字符(【电子学会五级考试内容】—— 掌握字符串的转义符

转义字符 描述
\n 换行符
\t 水平制表位,用于横向跳到下一个制表位
\‘ 单引号
\“ 双引号
\\ 反斜杠

\n 换行符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'''
题目:打印输出以下两位程序设计者姓名:
1. Mitchel Resnick
2. Guido van Rossum
'''
print('1. Mitchel Resnick')
print("2. Guido van Rossum")

print('---------------------')

print('''
1. Mitchel Resnick
2. Guido van Rossum
''')

print('---------------------')

# 使用转义字符 \n 实现
print("1. Mitchel Resnick \n2. Guido van Rossum")

' 与 "

1
2
print("Guido van Rossum said:\"we recommend v-3.5.2.\"") # Guido van Rossum said:"we recommend v-3.5.2"
print("Guido van Rossum said:\"use single quotation marks(\'\'),plase!\"") #Guido van Rossum said:"use single quotation marks(''),plase!"

\t 制表位 —— 用于横向跳到下一个制表位

1
2
3
print('hello\tPython!') #hello	Python!
# hello 与 python 之间间距是几个字符
print('00000000000000') #空 3 个字符

原字符——使转义字符失效的字符 r或R

1
2
# 可以用还原输出转义字符
print(r'\\ 表示转义反斜杠')

字符串索引

字符串又被称为有序的字符序列,不可变的字符序列,对字符串某个字符的检索称为索引

$\longleftarrow{反向递减序号}$
-16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
G u i d o v a n R o s s u m
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$\longrightarrow{正向递增序号}$

课堂作业: 取出 Guido van Rossum 姓的第一个字母

1
2
3
name = 'Guido van Rossum'
print(name[10]) #R
print(name[-6]) #R

字符串切片操作

对字符串中的某个子串或区间的检索称为切片
切片语法结构 字符串或字符串变量[N:M]
注意:切片不包含 M 位
课堂作业:请截取 Guido van Rossum 的姓

1
2
3
4
name = 'Guido van Rossum'
print(name[10:15]) #Rossu 所以 M 要输入大于 15 的任意数
print(name[10:]) #M 为空,默认截取到结尾
print(name[:4]) #N 为空,默认从第一个字母开始切

思考:

  • 世界那么大,我想去看看。执行[7:-3]的结果是什么?

常用的字符串操作

操作符 描述
x+y 连接字符串 x,y
xn or nx 复制 n 次 x
x in str x 是否是 str 的子串,是返回 true,否则返回 false

课堂作业:请说出龟叔的姓名

1
2
3
firstName = 'Guido van'
lastName = 'Rossum'
print('龟叔的姓名是:'+ firstName + ' ' + lastName)

课堂作业:重要的事情说三遍,请说出龟叔的姓

1
2
3
firstName = 'Guido van'
lastName = 'Rossum '
print('龟叔姓:' + lastName * 3)

课堂作业:龟叔 Guido van Rossum 的姓是不是 Rossum

1
2
name = 'Guido van Rossum'
print('Rossum' in name) #True

布尔类型

布尔类型是用来表示 “真” 值 或 “假” 值数据类型,其标识符为 True 或 False

True 表示整数 1,False 表示 0

1
2
3
4
5
# 验证 True 表示整数 1,False 表示 0
t = True
f = False
print(t + 1) #2
print(f + 1) #1

布尔值为 False 的情况如下:

  • False 或 None
  • 数值 0, 0.0 虚数 0
  • 空序列,包含空字符串,空元组,空列表,空字典,空集合等
  • 自定义对象实例,该对象的 bool() 方法返回 False,len() 方法返回 0

数据类型检测

type(parameter) 检测参数类型

1
2
3
print(type('')) #<class 'str'>
print(type(0)) #<class 'int'>
print(type(False)) #<class 'bool'>

homework

  • 思考:3.0,3,’3.0’, ‘3’ 是不是都一样?
  • 以下不是 Python 内置数据类型的是(char,int,float,str)
  • 判断:字符串是用一对双引号“”或一对单引号‘’,括起来的零个或多个字符串
  • 判断:字符串是字符的序列,也是序列类型的一种
  • 判断:字符串使用[]进行索引和切片的
  • 判断:Python 字符串的切片方式是[n,m],包括 m
  • 判断:赋值与二元操作符可以组合,如 &=
  • 判断:a,b=b,a 可以实现 a 和 b 值的互换
  • 判断:a,b,c=b,c,a 是合法的