python随记


学习python中的小记录…和YH约定的两周学习计划
工具:idle

1.字符串

字符串 字符串 就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:

"This is a string."
'This is also a string.'

1.1 修改字符串的大小写

name.py

name = "ada lovelace"
print(name.title())

输出为
Ada Lovelace
示例中,小写的字符串"ada lovelace" 存储到了变量name 中。在print() 语句中,方法title() 出现在这个变量的后面。


方法
方法 是Python可对数据执行的操作。
在name.title() 中,name 后面的句点(. )让Python对变量name 执行方法title() 指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成
其工作。这种信息是在括号内提供的。函数title() 不需要额外的信息,因此它后面的括号是空的。
title() 以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。


要将字符串改为全部大写或全部小写

name = "Ada Lovelace"
print(name.upper())
print(name.lower())

输出为
ADA LOVELACE
ada lovelace
存储数据时,方法lower() 很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大小写方式。

1.2 合并(拼接)字符串

示例

  first_name = "ada"
  last_name = "lovelace"
❶ full_name = first_name + " " + last_name
 print(full_name)

Python使用加号(+ )来合并字符串。
本例输出为
ada lovelace
这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息.

示例2

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print("Hello, " + full_name.title() + "!")

本例使用了方法title() 来将姓名设置为合适的格式。输出为
Hello, Ada Lovelace!

1.3 使用制表符或换行符来添加空白

要在字符串中添加制表符,可使用字符组合\t,要在字符串中添加换行符,可使用字符组合\n。
代码示例(输出看看效果):

  print("Languages:\n\tPython\n\tC\n\tJavaScript")

1.4 删除空白

在程序中,额外的空白可能令人迷惑。对程序员来说,‘python’ 和’python ’ 看起来几乎没什么两样,但对程序来说,它们却是两个不同的字符串。
删除用户输入的数据中的多余的空白,可使用方法rstrip()。

❶ >>> favorite_language = 'python '
❷ >>> favorite_language
  'python '
❸ >>> favorite_language.rstrip()
  'python'
❹ >>> favorite_language
  'python '

存储在变量favorite_language 中的字符串末尾包含多余的空白(见❶)。你在终端会话中向Python询问这个变量的值时,可看到末尾的空格(见❷)。对变量favorite_language 调用方法rstrip() 后(见❸),这个多余的空格被删除了。然而,这种删除只是暂时的,接下来再次询问favorite_language 的值时,你会发现这个字符串与输入时一样,依然包含多余的空白(见❹)。
要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:

  >>> favorite_language = 'python '
❶ >>> favorite_language = favorite_language.rstrip()
  >>> favorite_language
  'python'

剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip() 和strip() :

>>> favorite_language = ' python '
>>> favorite_language.rstrip()
' python'
>>> favorite_language.lstrip()
'python '
>>> favorite_language.strip()
'python'

在这个示例中,首先创建了一个开头和末尾都有空白的字符串,然后分别删除末尾、开头和两端的空格。

1.5 使用函数str() 避免类型错误

有时需要在消息中使用变量的值。例如,假设你要祝人生日快乐,可能会编写类似于下面的代码:
birthday.py

age = 23
message = "Happy " + age + "rd Birthday!"
print(message)

你可能认为,上述代码会打印一条简单的生日祝福语:Happy 23rd bi rthday!。但如果你运行这些代码,将发现它们会引发错误:
Traceback (most recent call last):
File “birthday.py”, line 2, in
message = "Happy " + age + “rd Birthday!”
❶ TypeError: Can’t convert ‘int’ object to str implicitly
Python发现你使用了一个值为整数(int )的变量,但它不知道该如何解读这个值。调用函数str() ,它让Python将非字符串值表示为字符串:

age = 23
message = "Happy " + str(age) + "rd Birthday!"
print(message)

此时输出为
Happy 23rd Birthday!

2. 列表

2.1 列表简介

列表中可以存储各种元素,他们之间可以是不同的类别。在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。
列表的索引从0开始

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])

输出为
cannondale(第二个元素)
specialized(第四个元素)
访问最后一个列表元素可以将索引指定为-1.

列表中的元素可以像变量那样被使用

>>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>> message = "My first bicycle was a " + bicycles[0].title() + "."
>>> print(message)
My first bicycle was a Trek.

这里使用bicycles[0] 的值生成了一个句子,并将其存储在变量message 中。

2.2 修改列表元素

修改列表中的某一个元素:

 bicycles[0] = 'demo1'
 print (bicycles)

在列表末尾添加元素

bicycless.append('ducati')
print(motorcycles)

用方法append() 让动态地创建列表,可以先创建一个空列表,再使用一系列的append() 语句添加元素

   motorcycles = []
    motorcycles.append('honda')
    motorcycles.append('yamaha')
    motorcycles.append('suzuki')
    print(motorcycles)

在列表中插入元素,使用方法insert()

motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)

输出
[‘ducati’, ‘honda’, ‘yamaha’, ‘suzuki’]

2.3 花样删除列表中的元素

1.利用索引从列表中删除元素
del motorcycles[1]
print(motorcycles)

2.方法pop() 可删除列表末尾的元素,并让你能够接着使用它。

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)

列表末尾的值’suzuki’ 已删除,它现在存储在变量popped_motorcycle 中:
[‘honda’, ‘yamaha’, ‘suzuki’]
[‘honda’, ‘yamaha’]
suzuki
也可以使用pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。每当你使用pop() 时,被弹出的元素就不再在列表中了。
如果你不确定该使用del 语句还是pop() 方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你要在删除元素后还能继续使用它,就使用方法pop() 。

3.根据值删除元素
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove().
假设我们要从列表motorcycles 中删除值’ducati’ 。

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)

输出结果
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]

4.使用remove() 从列表中删除元素时,也可接着使用它的值:

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)

输出结果
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]
注意  方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

2.4列表排序

使用方法sort() 对列表进行永久性排序

cars.py

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

run 后得到输出(此时汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序:)
[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]

也可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True 。

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
cars.sort(reverse=True)
print(cars)

[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
[‘toyota’, ‘subaru’, ‘bmw’, ‘audi’]

使用函数sorted() 对列表进行临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(sorted(cars))
print(cars)

输出结果为
[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
我们同样可以向函数sorted() 传递参数reverse=True .

反转列表元素的排列顺序

要反转列表元素的排列顺序,可使用方法reverse() 。注意,reverse() 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)

[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
[‘subaru’, ‘toyota’, ‘audi’, ‘bmw’]
方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse() 即可。

确定列表的长度

使用函数len() 可快速获悉列表的长度。列表包含4个元素,因此其长度为4.
len(cars)

避免列表索引错误和小结

索引-1 总是返回最后一个列表元素,当列表为空时,这种访问最后一个元素的方式才会导致错误。
小结
列表是什么以及如何使用其中的元素;
如何定义列表以及如何增删元素;
如何对列表进行永久性排序,以及如何为展示列表而进行临时排序;
如何确定列表的长度,以及在使用列表时如何避免索引错误。


参考资料:
Python编程:从入门到实践
[美] Eric Matthes
译者:袁国忠

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章