操作字符串

字符串可以用单引号或双引号包围,建议用单引号。
如果字符串中含单引号或双引号,可以用\转移(escape)。例如\\, \', \", \n等。

>>> a='\\'
>>> a
'\\'
>>> len(a)
1

也可以在字符串前加r,表示是raw string,会忽略转义:

>>> print('\n is new line')is new line
>>> print(r'\n is new line')
\n is new line

如果字符串跨多行,可使用三个单引号'''包围,这样其中所有的换行,缩进等都会保留:

>>> print('''Dear Alice,
...
... Eve's cat has been arrested for catnapping, cat burglary, and extortion.
...
... Sincerely,
... Bob''')
Dear Alice,Eve's cat has been arrested for catnapping, cat burglary, and extortion.Sincerely,
Bob

三个双引号"""用于多行注释。#用于单行注释。

字符串可看成是字符的list,因此也可以索引(从0开始),切片,与innot in操作符结合。

PUTTING STRINGS INSIDE OTHER STRINGS

下面两种方式都可以实现字符串的拼接:

# f string,版本3.6以后支持
>>> print(f'Panda {name} is {age} years old')
Panda meimei is 4 years old
# string interpolation,老方式
>>> print(f'Panda %s is %s years old' %(name, age))
Panda meimei is 4 years old

有用的STRING方法

upper()lower()可以将字符串转换为大小写,但不会改变原始字符串。
isupper()islower()可判断字符串是否大小写。
其它以is开头的方法包括isapha(), isalnum(), isdecimal(), isspace()istitle()
startswith()endswith()方法不说了。
join()split()方法可以用指定的分隔符组合或分割字符串,如split('\n')可用于分割多行:

>>> ', '.join(['dog', 'cat', 'pig'])
'dog, cat, pig'
>>> 'dog, cat, pig'.split(', ')
['dog', 'cat', 'pig']

partition()方法将字符串分割为3部分,之前,分隔符和之后:

>>> 'Hello, world!'.partition('world')
('Hello, ', 'world', '!')

如果没有找到,则返回整个字符串,空串,空串

rjust(), ljust(), and center() 通过添加空格实现左右和居中对齐,在做表格时特别有用,如小票。

>>> 'left'.rjust(10)
'      left'
>>> 'right'.ljust(10)
'right     '
>>> 'center'.center(10)
'  center  '
>>> 'center'.center(10, '*')
'**center**'

strip(), rstrip(), and lstrip()可去除左右或两端的空格。

ORD()和CHR()实现字符与数字码之间的转换

>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 1)
'b'

建议看视频:Ned Batchelder’s 2012 PyCon talk, “Pragmatic Unicode, or, How Do I Stop the Pain?” at https://youtu.be/sgHbC6udIqc

使用PYPERCLIP模块拷贝和粘贴字符串

这个模块需要额外安装:

$ pip3 install --user pyperclip

示例:

>>> import pyperclip
>>> pyperclip.copy('Hello World!')
>>> pyperclip.paste()
'Hello World!'

PROJECT: MULTI-CLIPBOARD AUTOMATIC MESSAGES

PROJECT: ADDING BULLETS TO WIKI MARKUP

A SHORT PROGAM: PIG LATIN

以上三个示例程序,有几点收获。
sys模块。sys.argv表示传入的参数,argv[0]是第一个参数,没有类似于C语言中的argc,用len(argv)代替。
其它还有sys.path, sys.modules等,详见help(‘sys’)
第二个就是可以she-bang的方式直接运行python文件。
例如文件test.py:

#!/usr/bin/python3python code here

赋予此文件可执行权限:

chmod a+x test.py

然后就可以用./test.py运行,而不必用python3 test.py运行了。

与这几个例子类似的程序可参见这里: https://nostarch.com/automatestuff2/

遗留问题,"""除了做注释,好像还可以做字符串? - 查阅了文档,在Python中,单引号和双引号可认为是对等的,因此3个单引号和3个双引号是一个含义,称为triple quoted string,可以作为注释,或者作为字符串赋值给变量,特别是在跨多行,并且其中含换行等特殊字符时:

>>> a="""
... aa
...     lk
... """
>>> a
'\naa\n \tlk\n'

还有剪贴板程序,可以读取剪贴板的内容,但是粘贴到剪贴板的内容,从外部读取不到。

练习

第一个练习的代码:

def print_table(t):num_items = len(t[0])max_lens = [0] * len(t)for i in range(len(max_lens)):for j in range(num_items):clen = len(t[i][j])if clen > max_lens[i]:max_lens[i] = clen for i in range(num_items):str = ''for j in range(len(max_lens)):str += t[j][i].rjust(max_lens[j])str += ' 'print(str.rstrip())table_data = [['apples', 'oranges', 'cherries', 'banana'],['Alice', 'Bob', 'Carol', 'David'],['dogs', 'cats', 'moose', 'goose']]print_table(table_data)

输出为:

  apples Alice  dogsoranges   Bob  cats
cherries Carol moosebanana David goose

第二个练习参见:https://github.com/asweigart/zombiedice/

AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第6章:MANIPULATING STRINGS相关推荐

  1. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第8章:INPUT VALIDATION

    THE PYINPUTPLUS MODULE PyInputPlus 模块可用以检查输入有效性,避免手工编写代码. 这个手工代码的例子中有一段,except后可不指定exception,表示所有的ex ...

  2. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第10章:ORGANIZING FILES

    SHUTIL 模块 shutil是shell utility的简称,使用此模块需要import shutil. 详见在线文档,在线帮助见help(shutil) >>> shutil ...

  3. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第2章:FLOW CONTROL

    在流程图中,开始和结束圆角矩形表示,菱形表示流控分支,矩形表示实际操作. 布尔值 布尔值包括两个常数,即True和False. 布尔的命名来源于数学家George Boole. 比较操作符 包括==, ...

  4. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第12章:WEB SCRAPING

    Web Scraping是指用程序来下载和处理网络上的内容.Scrap是铲,刮和削的意思. 本章介绍的模块包括webbrowser,requests,bs4和selenium. 项目: 使用WEBBR ...

  5. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第9章:READING AND WRITING FILES

    本章需要用到以下的模块: from pathlib import Path import os 文件和文件路径 文件由文件名和路径组成.Linux以/(forward slash)为根路径,Windo ...

  6. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第19章:MANIPULATING IMAGES

    本章介绍Pillow模块,可处理图形文件.安装如下: # pillow安装依赖于JPEG源代码 $ sudo yum install libjpeg-turbo-devel $ pip3 instal ...

  7. Automate the Boring Stuff with Python学习笔记1

    将<Automate the Boring Stuff with Python>的语法部分学完了,开始依葫芦画瓢做第一个项目. #! python3 # pw.py - An insecu ...

  8. Python读书笔记第五章:运算符与表达式

    1.运算符 2.运算符优先级 3.表达式 length = 5 breadth = 2 area = length * breadth print 'Area is', area print 'Per ...

  9. Doing Math with Python读书笔记-第6章:Drawing Geometric Shapes and Fractals

    本章学习利用matplotlib画几何图形和分形(fractal) 使用MATPLOTLIB库PATCHES包画几何图形 回顾之前的画图: plt.plot(...) plt.show() 也可以拆解 ...

最新文章

  1. Java EE API整合:为什么Spring要与“笨重”的Java EE共舞?
  2. cisco 2960-24 配置(生产环境)
  3. Python之爬虫-段子网
  4. P4245 【模板】任意模数多项式乘法(NTT)
  5. 面向 Android* Jelly Bean 4.3 的英特尔® 凌动™ x86 映像安装指南 - 推荐
  6. 存储过程中进行循环处理数据
  7. python结巴分词的缺点_Python 结巴分词
  8. web前端面试题(关于闭包)
  9. Flash优秀学习资源下载总汇!(不断更新)
  10. matlab产生过渡矩阵,浅谈向量空间和矩阵
  11. matlab凑数求和,excel自动凑数求和 使用规划求解来解决excel自动凑数求和的方法...
  12. php error_reporting 无效,PHP error_reporting 很不理解。。。
  13. 科学论文的写作内容与要求
  14. win10 vs2022 .net6 opencvsharp 4.5.5自己编译wecharts 微信二维码扫描模块。
  15. 详解windows10安装失败怎么办
  16. システム関連の完了コード
  17. vue 实现快捷键录入功能
  18. 内推安排!阿里淘系算法!
  19. OUTPUT 在insnert delete update 的神奇功效
  20. Cocos Creator | 通过 effect 实现卷轴展开和收拢效果

热门文章

  1. 精读:CollAFL: Path Sensitive Fuzzing
  2. i love you 浪漫字体复制_英文字母_“我爱你”不止“I love you”,如何更浪漫地表达爱意?_沪江英语...
  3. 路由导航 的报错 请在线大神解答。。
  4. 基于EKF的车辆状态估计系统建模
  5. Apache httpd.conf详解
  6. VBA 快速实现Word三线表
  7. html如何播放多个mp3,HTML5_audio_如何实现播放多个MP3音频
  8. AndroidStudio 动态调试apk(release版)
  9. CpuLimit脚本进程CPU使用率限制
  10. 诸暨市第七届“身边的道德模范”中 爱心助残协会何君平会长风采