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

  当字符串中出现单引号'时,我们可以用双引号""将该字符串引起来:"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 name
what is your name ?Allen Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
name=input("what is your name ?");print name
File "<string>", line 1, in <module>
NameError: name 'Allen' is not defined
>>> name=input("what is your name ?");print name
what is your name ?"Allen"
Allen >>>input("Enter a number:")
Enter a number:3
3
>>>raw_input("Enter a number:")
Enter a number:3
'3'

4、长字符串

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

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

LongStr

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

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

print "Hello,\
world!"
#上句会打印Hello,world!。这个用法也适用于表达式和语句:
>>>1+2+\
4+5
12
>>>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 go
SyntaxError: 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一样。

Python基础语法——(引号、字符串、长字符串、原始字符串、Unicode)的更多相关文章

  1. python基础语法3 整形,浮点,字符串,列表

    整形: ========================基本方法===========================用途: 一般用于定义整数:年龄.身份证号.qq号定义方式:age = 18 # a ...

  2. 【python基础语法】数据类型:数值、字符串 (第2天课堂笔记)

    """ 数据类型: 一.数值类型:整数 浮点数 布尔值 二.序列类型:字符串.列表 元祖 三.散列类型:字典 集合 可变数据类型: 列表 字典 集合,可以改动内存地址数据 ...

  3. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  4. python基础语法及知识点总结

    本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...

  5. python基础语法(变量与数据类型)

    python基础语法(变量与数据类型) 一.python变量 python中的变量不需要声明.每个变量在使用钱都需要赋值,变量赋值以后,该变量才会被创建 在python中,变量就是变量,它没有类型,我 ...

  6. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  7. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  8. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  9. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

随机推荐

  1. ROS教程

    Learning ROS 学习ROS Depending on your learning style and preferences, you can take two approaches to ...

  2. (并查集)Is It A Tree? --POJ--1308

    链接: http://poj.org/problem?id=1308 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#probl ...

  3. vc创建模态和非模态对话框

    模态对话框的创建 创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能就是创建并显示一个模 态对话框,关闭模态对话框的函数是EndDialog,该函数需要一个参数,这个参数就 ...

  4. Checkpoint--实现步骤

    Checkpoint 实现步骤: 1.将CheckPoint标记写入日志(标记中包含当前数据库中活动的事务信息),并将Log Block写入持久化存储 2.将Buffer Pool中所有的脏页写入磁盘 ...

  5. 拒绝“高冷”词汇!初学C#中的委托

    有一天,你写了好多好多带“形参”的构造函数(就是“方法”,同义),而且需要向这些构造函数里传递同样的“实参”,然后你就憨憨地一个一个函数的调用并赋予同样的“实参”,这一天就这么过去了... 又过了几天 ...

  6. 用input标签 文件,多文件上传

    单个文件,多个文件区别不大,只是需要把多个文件装在一个容器里面,循环遍历即可: 需要注意的 input 标签中name属性,一定要指定: 在这是  fileBase  需要确定method必须是pos ...

  7. 记录JavaScript中使用keyup事件做输入验证(附event.keyCode表)

    input的blur事件 $("#input-name").blur(function () { var value = $(this).val(); if (value === ...

  8. max渲染通道元素的范例

    renderElementManager = MaxOps.GetCurRenderElementMgr() renderElementManager.Removeallrenderelements( ...

  9. 批处理系列(18) - 基于BitLocker的开锁上锁

    首先要配置好BitLocker. 上锁 lock.bat @echo off rem 上锁前要结束一些程序,浏览器要注意:有恢复上次关闭项功能,按需设置取消该操作 taskkill /f /t /im ...

  10. pageadmin CMS网站制作教程:模板中的站点数据调用

    pageadmin CMS网站建设教程:模板中的站点数据调用 1.获取当前站点Id,返回int数字 Html.CurrentSiteId() 2.获取当前站点url地址,返回string字符串 Htm ...