DAY 7

Day 7

Chapter 6 字符串 STRINGS

字符串文字

四种引号

引号的作用就是将文字包裹起来,告诉python这是个字符串

单引号和双引号是最常见的两种字符串引号

三个引号的情况不太常见,但是它在一些场合有特定的作用(如函数文档 doc-strings)

我们为什么需要两种不同的引号?

#为了写出这样的句子

print("你说:'好嘞答应你'")

输出的是 你说:'好嘞答应你'

字符串中的换行符号

前面有反斜杠\的字符,叫做转义序列

比如\n代表换行,尽管它看起来像两个字符,但是python依然把它视为一个特殊的字符

可以在字符串后面使用反斜杠'\'来排除后面的换行

其他的转义序列

输出单个引号 可以这样

print("\双引号其中一个")

其他参考C语言

转义序列只作为一个字符存在

repr VS print

repr输出的是字符串的具体结构,比如有"\t",在repr()输出中会有\t本身出现

 

一些字符串常量

import string

print(string.ascii_letters)

abcd...xyzABCD...XYZ

print(string.ascii_letters)

abcd...xyz

print(string.ascii_uppercase)

ABCD...XYZ

print(string.digits)

0123456789

print(string.punctuation)

能打印的符号

print(string.printable)

所有能打印的单体

print(string.whitespace)

空白字符

print(repr(string.whitespace))

奇怪东西

 

一些字符串的运算

字符串相加---->拼接

字符串乘一个数---->这个字符串输出几遍

in 运算print("???" in "??????")会输出True 或者 False

判断前是否在后里面出现

 

字符串索引和切片

单个字符索引

索引可以让我们在特定位置找到一个字符

 

用切片来获取字符串的一部分

print(s[0:4])左闭右开

 

切片的默认参数

左边没参数的时候默认值是0,右边没参数的时候默认值是-1

 

切片的第三个参数

翻转字符串

步长如果是-1的话就是从右往左一个一个数

print(s[::-1])

可以但是不优雅

join 函数(可以把后续的列表或者说一个序列给依次添加到一个字符串里面来)

print("".join(reversed(s)))

可以但还是不够优雅

写一个函数就叫翻转字符串

def reverseString(s):

return s[::-1]

print(reverseString(s))

这个优雅

 

字符串的循环

用索引的for 循环

for i in range(len(s))

print(i, s[i])

 

其实也可以不用索引(超级好用的in)

for c in s:

print(c)

直接输出的就是s[i]

 

也可以使用 enumerate()获得元素的序号

for idx, c in enumerate(s):

print(idx, c)

这个与上述第一个输出内容相同,序号+实际内容

 

zip(a, b)可以在一次循环中,分别从a 和 b 里同时取出一个元素

for a, b in zip(s, reverseString(s)):

print(a, b)

正序倒序全部输出

 

for idx, (a, b) in enumerate(zip(s, reverseString(s))):

print(idx, a, b)\

比较高级了

 

用split()来循环

class_name.split()本身会产生一个新的叫做“列表”的东西,但是它不存储任何内容

class_name = "hi hello hi hello"

for word in class_name.split():

print(word)

会输出

hi

hello

hi

hello

用中括号括起来的叫做列表

['learn', 'python', 'the', 'smart', 'way', '2nd', 'edition']

 

例子:回文判断

正反读一样便是回文

如果s = reverseString(s)

又或是s[i] = s[len(s) - 1 - i]

 

一些跟字符串相关的内置函数

str() 和 len()

str将其他东西转成字符串

chr() 和 ord()

ord将字符转成ASCII码

chr将码转化成对应字符

eval函数用来执行字符串里的表达式,但强烈不推荐使用

 

推荐使用 ast.literal_eval()

 

inport ast

s_safe = "(3**2 + 4**2)**0.5"

s_safe_result = ast.literal_eval(s_safe)

print(s_safe_result)

print(type(s_safe_result))

 

s.isalnum

s.isalpha

s.isdigit

s.islower

s.isspace

s.isupper

 

.lower变小写

.upper变大写

.strip()可以将字符串首尾的空格删除

.replace("","")可以将前换成后

.count()可以查字符串中出现了几个括号里的东西

.startwith()是不是以括号里的东西开头

.endwith参考startwith

.find()找到匹配的子串的位置,没找到就是-1 需要考虑是不是-1 ,如果是-1写个if不执行操作

.index跟find很像,但没找到的话就会报错

 

用f - string 格式化字符串

x = 42

y = 99

print(f'你知道{x} + {y} 是 {x+y} 吗?')

输出 你知道 42 + 99 是 141 吗?

 

其他格式化字符串的方法

  • %操作

  • format()方法

 

字符串是不可变的

必须创建一个新的字符串

字符串和别名

s = 'data'

t = s

s += 'whale'

print(s)

print(t)

输出:

datawhale

data

 

基础文件操作

Open()函数

python open()函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数

open(file, mode)函数主要有 file 和 mode 两个参数, 其中 file 为需要读写文件的路径。mode为读取文件时的模式,常用的模式有以下几个:

  • r: 以字符串的形式读取文件

  • rb: 以二进制的形式读取文件

  • w: 写入文件

  • a: 追加写入文件

不同模式下返回的文件对象功能也会不同

文件对象

open 函数会返回一个文件对象,在进行文件操作前,我们首先需要了解文件对象提供了那些常用的方法:

  • close() 关闭文件

  • 在 r 与 rb 模式下:

  • read()读取整个文件

  • readline()读取文件的一行

  • readlines()读取文件的所有行

  • 在 w 与 a 模式下:

  • write()

  • writelines()

 

file = open('dsadwdas.txt','w')

content = '写入的内容' #创建需要写入的字符串变量

file.write()

file.close()

w模式会覆盖之前的文件内容,如果要跟着原来的内容走,就用a模式

 

只有close了下次才能write

如果忘记,就用this函数

import this

get(c,c)是什么意思

 

总结

  • 单引号与双引号要适时出现,多行文本用三引号

  • 字符串中可以包含转义序列

  • repr()能够显示出更多的信息

  • 字符串本身包含许多内置方法,in 是一个特别好用的东西

  • 字符串是不可变的常量

  • 文件操作推荐使用 with open("xxx") as yyy,这样就不用写 f.close了

本文作者:berber288

本文链接:https://www.cnblogs.com/berber288/p/17872064.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   berber288  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.