组队学习专用——chap 6

目录

一、个人链接主页

https://hydro.ac/d/datawhale_p2s/user/63162

二、引号

1.单引号和双引号

2.3个单引号及3个双引号

三、转义符

四、字符串函数

1.repr函数

2.enumerate函数

3.eval函数


一、个人链接主页

登录 - HydroOJ

https://hydro.ac/d/datawhale_p2s/user/63162

二、引号

1.单引号和双引号

在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如

str1 = 'python'
str2 = "python"

str1和str2是没有任何区别的。但是如果遇到需要转义字符的情况,来看单引号和双引号的版本。

单引号版本:

str3 = 'We all know that \'A\' and \'B\' are two capital letters.'

双引号版本:

str4 = "We all know that 'A' and 'B' are two capital letters."

单引号需要加 '' 来让编译器判断目前是转义字符,而双引号方便了很多。

反之,如果字符串中有双引号,为了避免使用转义符,可以使用单引号来定义这个字符串。

str5 = 'The teacher said: "Practice makes perfect" is a very famous proverb.'

2.3个单引号及3个双引号

实际上3个单引号和3个双引号不经常用,但是在某些特殊格式的字符串下却有大用处。通常情况下我们用单引号或者双引号定义一个字符串的时候只能把字符串连在一起写成一行,如果非要写成多行,就得在每一行后面加一个\表示连字符,比如:

str1 = "List of name:\
        Hua Li\
        Chao Deng"

而且即使你这样写也不能得到期望的输出:

List of name:
Hua Li
Chao Deng

实际上输出是下面这样的:

那么该如何得到我们期望的一行一个名字的输出格式呢?这就是3个引号的作用了:

虽然我们也可以通过给字符串加上\n实现:

使用3个引号还有一个特别棒的作用就是:加注释

此外,多行注释也可以用用三个单引号 ''' 或者三个双引号 """ 将注释括起来。

三、转义符

这里大家可以看一篇转义符的汇总https://zhuanlan.zhihu.com/p/598923346

四、字符串函数

1.repr函数

函数功能返回一个对象的字符串表现形式。其功能和str函数比较类似,但是两者也有差异:函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。

>>> a = 'some text'
>>> str(a)
'some text'
>>> repr(a)
"'some text'"

repr函数的结果一般能通过eval()求值的方法获取到原对象。

>>> eval(repr(a))
'some text'

2.enumerate函数

enumerate中文翻译过来的意思是"枚举"。在Python中一般是对可遍历的对象,比如列表、元组或字符串进行遍历。

举例:

enumerate(sequence, [start=0])
s = "Datawhale"
for idx, c in enumerate(s):
    print(idx, c)

标为0开始,当然可以指定start为其他的数字,但是这里的数字表示的是起始的数字,而非列表或其他数据类型的真实下标!

举例:

s = "Datawhale"
for index,item in enumerate(s,6):
    print(index,item)

 

3.eval函数

eval 函数是一个高危函数,因为它可以执行任何字符串作为 Python 代码。如果用户能够控制传递给 eval 的字符串,那么他们可以在代码执行时对系统进行恶意操作,比如删除文件或者执行其他危险的操作。

在 Python 中还有其他一些高危函数,例如 exec 函数和 pickle 模块。 exec 函数和 eval 函数类似,都可以执行任意传递给它们的字符串作为 Python 代码。pickle 模块可以将 Python 对象序列化为字节流,也可以反序列化字节流为 Python 对象。如果攻击者能够控制传递给 pickle 的字节流,他们可以在反序列化时执行任意代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值