博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础语法——(引号、字符串、长字符串、原始字符串、Unicode)
阅读量:5082 次
发布时间:2019-06-13

本文共 2697 字,大约阅读时间需要 8 分钟。

一、单引号字符串和转义引号

  当字符串中出现单引号'时,我们可以用双引号""将该字符串引起来:"Let's go!"

  而当字符串中出现双引号时,我们可以用单引号''将该字符串引起来:' "Hello,world!" she said '

  但是当字符串中又有单引号'又有双引号"时该如何处理呢:使用反斜线(\)对字符串中的引号进行转义:'Let\'s go!'

二、字符串

  1. 拼接字符串
>>>"Let's say"  ' "Hello,world!" ''Let\'s say "Hello,world!" ' >>>x="hello," >>>y="world!" >>>x y SyntaxError: invalid syntax >>>"hello,"+"world!" 'hello,world!' >>>x+y 'hello,world!'

   上面只是一个接着一个的方式写了两个字符串,Python就会自动拼接它们,但是如果赋值给变量再用这种方式拼接则会报错,因为这仅仅是书写字符串的一种特殊方法,并不是拼接字符串的一般方法;这种机制用的不多。用"+"好可以进行字符串的拼接;

  2.字符串表示,str和repr

>>>print repr("hello,world!")'hello,world!'>>>print repr(10000L)10000L>>>print str("Hello,world!")Hello,world!>>>print str(10000L)10000

 str和int、bool一样,是一种类型,而repr仅仅是函数,repr(x)也可以写作`x`实现(注意,`是反引号,不是单引号);不过在Python3.0中已经不再使用反引号了。因此,即使在旧的代码中应该坚持使用repr。

  3.input和raw_input的比较

  input会假设用户输入的是合法的Python表达式,比如输入数值1,程序不会当作是str,而是当作int类型,输入x,程序会当作用户输入的是变量x,如果输入"x",程序才会人可是字符串;

  raw_input函数它会把所有的输入当作原始数据,然后将其放入字符串中。

>>> name=input("what is your name ?");print namewhat is your name ?AllenTraceback (most recent call last):  File "
", line 1, in
name=input("what is your name ?");print name File "
", line 1, in
NameError: name 'Allen' is not defined>>> name=input("what is your name ?");print namewhat is your name ?"Allen"Allen>>>input("Enter a number:")Enter a number:33>>>raw_input("Enter a number:")Enter a number:3'3'

 4、长字符串

如果需要写非常长的字符串,它需要跨多行,那么可以使用三个引号代替普通引号。

1 print '''This is very long string.2 It continues here .3 And it's not over yet.4 Still here.'''5 #也可以使用三个双引号,例如:6 """Like This"""
LongStr

因为这种与众不同的引用方式,你可以在字符串之间同时使用单引号和双引号,而不需要使用反斜线进行转义。

普通字符串也可以跨行。如果一行之中最后一个字符是反斜线,那么换行符本身"转义"了,也就是被忽略了,例如:

print "Hello,\world!"#上句会打印Hello,world!。这个用法也适用于表达式和语句:>>>1+2+\            4+512>>>print \            'Hello,world'Hello,world

5、原始字符串

\反斜线有转义的功能,\n表示换行符,如果打印一个路径,例如:

>>>print 'C:\nowhere'#打印结果如下C:owhere #我们可以通过反斜线进行转义,改为: >>>print 'C:\\nowhere'

但是如果对于长路径,那么需要很多的反斜线,这样原始字符串就派上用场了。

原始字符不会把反斜线当作特殊字符串。

>>>print r'C:\nowhere'C:\nowhere>>>print r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz'C:\Program Files\fnord\foo\bar\baz\frozz\bozz

当然我们也要像平常一样对引号进行转义,但是,最后的输出的字符串也包含了转义所用的反斜线

>>> print r'Let's goSyntaxError: invalid syntax>>> print r'Let\'s go'Let\'s go

但是不能在原始字符串结尾输入反斜线。

print r"This is illegal\"

上面写法会报错,参照上一个范例这是一个显而易见的结论。最后一个字符是反斜线,Python就不清楚是否应该结束字符串。

但如果字符串最后一个字符确实是\,可以使用一个技巧解决上述问题

print r'C:\Program Files\foo\bar' '\\'

C:\Program Files\foo\bar\

6、Unicode字符串

Pyhon 中的普通字符串在内部是以8位的ASCII码形成存储的,而Unicode字符串则存储为16位Unicode字符,这样就能够表示更多的字符集了,包括世界上大多数语音的特殊字符,例子:

>>>u'Hello,world!'u'Hello,world!'

可以看到,Unicode字符串使用u前缀,就像原始字符串使用r一样。

 

转载于:https://www.cnblogs.com/allen0/p/6833456.html

你可能感兴趣的文章
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>