Post

python学习

基本数据类型

标准数据类型
Python3 中常见的数据类型有:

  • Number(数字)
  • String(字符串)
  • bool(布尔类型)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)
  • Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Number

Python3 支持 int、float、bool、complex(复数)。
内置的 type() 函数可以用来查询变量所指的对象类型。

1
2
3
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

此外还可以用 isinstance 来判断:

1
2
3
4
>>> a = 111
>>> isinstance(a, int)
True
>>>

isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

销毁对象

1
2
del var
del var_a, var_b

abs(x):返回数字的绝对值,如abs(-10)返回10
ceil(x):返回数字的上入整数,如math.ceil(4.1) 返回5
exp(x):返回ex次幂,如math.exp(1)返回2.718281828459045
fabs(x):以浮点数形式返回数字的绝对值,如math.fabs(-10)返回10.0
floor(x):返回数字的下舍整数,如math.floor(4.9)返回4
log(x):如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x):返回以10为基数的x的对数,如math.log10(100)返回2.0
max(x1, x2,...):返回给定参数的最大值,参数可以为序列。
min(x1, x2,...):返回给定参数的最小值,参数可以为序列。
modf(x):返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y):x**y运算后的值。
round(x [,n]):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。
sqrt(x)返回数字x的平方根。

数值运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余 
2
>>> 2 ** 5 # 乘方
32

String(字符串)

  • 从前往后索引从0开始
  • 从后往前索引从-1开始 ```python str = ‘Runoob’

print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次,也可以写成 print (2 * str) print (str + “TEST”) # 连接字符串 print(str[:2]) # 输出2之前的字符串 ‘’’ 结果如下: Runoob Runoo R noo noob RunoobRunoob RunoobTEST Ru ‘’’

1
2
3
4
5
6
7
8
### string运算符
`+`:字符串连接`a + b`  
`*`:重复输出字符串`a*2`  
`[]`:通过索引获取字符串中字符  
`[ : ]`:截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。  
`in`:成员运算符 - 如果字符串中包含给定的字符返回 True    
`not in`:成员运算符 - 如果字符串中不包含给定的字符返回 True   	
`r/R`:原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

print( r’\n’ )
print( R’\n’ )

1
2
3
4
5
`%`:格式字符串
### 格式化字符串
```python
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
# 输出:我叫 小明 今年 10 岁!

fstring

1
2
3
4
5
6
7
8
9
>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量
'Hello Runoob'
>>> f'{1+2}'         # 使用表达式
'3'
>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'

bool

==,!=,and,or,not

List(列表)

写在方括号内[]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表
"""
结果:
['abcd', 786, 2.23, 'runoob', 70.2]
abcd
[786, 2.23]
[2.23, 'runoob', 70.2]
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']
"""

支持索引更新,append为添加元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/python3
 
list = ['Google', 'Runoob', 1997, 2000]
 
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
 
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)
结果
第三个元素为 :  1997
更新后的第三个元素为 :  2001
更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']

del list[2]可以删除相应的元素

元组

使用()
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

注释

1
2
3
4
# 单行注释
"""
多行注释(单引号也可以)
"""

运算符

新增(相较于c++): and,or,not而非&&,||,!
:=赋值并返回值
in如果在指定的序列中找到值返回True,否则返回 False
not in如果在指定的序列中没有找到值返回True,否则返回False
is:x is y, 类似 id(x) == id(y),如果引用的是同一个对象则返回True,否则返回False(比较地址) is not:同理

This post is licensed under CC BY 4.0 by the author.