kevin

Python学习笔记3-Python 速览

要点:

1、数学运算-向下取整:

17 // 3  # 结果:5,向下取整除法运算会丢弃小数部分

 

2、Python 全面支持浮点数;混合类型运算数的运算会把整数转换为浮点数:

4 * 3.75 - 1    # 结果:14.0

 

3、最好把该变量当作只读类型。不要为它显式赋值,否则会创建一个同名独立局部变量,该变量会用它的魔法行为屏蔽内置变量。

 

4、Python字符串:要标示引号本身,我们需要对它进行“转义”,即在前面加一个 \。 或者,我们也可以使用不同类型的引号:

s = 'doesn\'t'
print(s)    # doesn't

  

5、如果不希望前置 \ 的字符转义成特殊字符,可以使用 原始字符串,在引号前添加 r 即可:

print('C:\some\name')     # 在\n处换行
print(r'C:\some\name')    # C:\some\name

 

6、字符串索引越界会报错:但是,切片会自动处理越界索引:

word = 'Python'
# 越界报错
print(word[42])    # IndexError: string index out of range

# 自动处理越界索引
print(word[4:42])    # on
print(word[42:])    # ''

 

7、Python字符串不能修改,是immutable的。因此,为字符串中某个索引位置赋值会报错:

word = 'Python'
word[3] = 'i'    # TypeError: 'str' object does not support item assignment

 

8、列表可以包含不同类型的元素,但一般情况下,各个元素的类型相同:

squares = [1, 4, 9, 16, 25]
print(squares)

    列表也支持索引和切片:

print(squares[0])
print(squares[-1])
print(squares[-3:])

    列表还支持合并操作:

print(squares + [36, 49, 64, 81, 100])

 与immutable字符串不同, 列表是mutable类型,其内容可以改变:

cubes = [1, 8, 27, 65, 125] # 这里有点问题

print(4 ** 3)

# 4地立方是64,而不是65
cubes[3] = 64
print(cubes) #[1, 8, 27, 64, 125]

    也可以在通过使用 list.append() 方法,在列表末尾添加新条目:

cubes.append(216)
print(cubes) # [1, 8, 27, 64, 125, 216]
cubes.append(7 ** 3)
print(cubes) # [1, 8, 27, 64, 125, 216, 343]

    Python 中的简单赋值绝不会复制数据。 当你将一个列表赋值给一个变量时,该变量将引用 现有的列表。你通过一个变量对列表所做的任何更改都会被引用它的所有其他变量看到:

rgb = ["Red", "Green", "Blue"]
rgba = rgb
print(rgba == rgb)  # True 它们指向同一个对象

rgba.append("Alpha")
print(rgb)  # ["Red", "Green", "Blue", "Alpha"]

 切片操作返回包含请求元素的新列表。以下切片操作会返回列表的浅拷贝

rgb = ["Red", "Green", "Blue"]
rgba = rgb
print(id(rgba) == id(rgb)) # True
rgba.append("Alpha")
print(rgba) # ['Red', 'Green', 'Blue', 'Alpha']
print(rgb) # ['Red', 'Green', 'Blue', 'Alpha']
correct_rgba = rgba[:]
print(correct_rgba) # ['Red', 'Green', 'Blue', 'Alpha']
correct_rgba[-1] = "Alph"
print(correct_rgba) # ["Red", "Green", "Blue", "Alph"]
print(rgba) # ["Red", "Green", "Blue", "Alpha"]
other_rgba = rgba[:]
print(id(other_rgba) == id(rgba))   #False

为切片赋值可以改变列表大小,甚至清空整个列表:

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
letters[2:5] = ['C', 'D', 'E']
print(letters) # ['a', 'b', 'C', 'D', 'E', 'f', 'g']

letters[2:5] = []
print(letters) # ['a', 'b', 'f', 'g']

letters[:] = []
print(letters) # []

内置函数 len() 也支持列表:

letters = ['a', 'b', 'c', 'd']
print(len(letters)) # 4

还可以嵌套列表(创建包含其他列表的列表),例如:

a = ['a', 'b', 'c', 'd']           
n = [1, 2, 3, 4]           
x = [a, n]           
print(x) # [['a', 'b', 'c', 'd'], [1, 2, 3, 4]]
print(x[1][2]) # 3

9、'...'、"..."这两种引号唯一的区别是,不需要在单引号里转义双引号 " (但此时必须把单引号转义成 \' ),反之亦然。

 

  

  

  

posted on 2024-11-05 20:21  ---城隍庙名士---  阅读(0)  评论(0编辑  收藏  举报

导航