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

  当字符串中出现单引号'时,我们可以用双引号""将该字符串引起来:"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. Android 3D游戏开发

    OpenGL ES(OpenGL Embedded System) Android 3D游戏开发技术宝典:OpenGL ES 2.0(android 3d游戏开发技术宝典 -opengl es 2.0 ...

  2. (最小生成树 )还是畅通工程 -- HDU--1233

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  3. Codeforces805 C. Find Amir 2017-05-05 08:41 140人阅读 评论(0) 收藏

    C. Find Amir time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  4. APUE(5)---标准I/O库 (3)

    十.定位流 #include <stdio.h> long ftell(FILE *fp); //若成功,返回当前文件位置指示:若出错,返回-1L int fseek(FILE *fp, ...

  5. hdu 4995 离线处理+模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=4995 给定一维坐标下的n个点,以及每个点的权值,有m次查询,每次将查询的x点上的权值修改为离x最近的k个点权值的 ...

  6. SyntaxError: Non-ASCII character '\xe5' in file test.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

    python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符. 在Python源文件的最开始一行,加入一句: # coding=UTF-8

  7. 程序员MAC必备

    排名不分先后 • iTerm 2 终端工具(建议配合oh-my-zsh使用) • Shadowsocks     ***工具 (可用于FQ) • Foxmail 邮箱工具 (适用于企业邮箱登陆) • ...

  8. LoadRunner 12下载和安装教程

    我们利用LoadRunner可以对Web应用系统进行性能压力测试,本篇博客将和大家介绍下LoadRunner 12的下载和安装,在后续的博客中将和大家介绍其使用的方法. 1.LoadRunner 12 ...

  9. leetcode 缺失数字

    给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2 ...

  10. 在MUI框架中使用video.js插件,并在暂停的时候利用Asp.net将观看时长保存到sqlserver数据库

    本次保存数据的情况有三种: 在视频播放的时候点击暂停,将本视频的进度保存到数据库 利用mui内部的控件,返回上一页操作时,进行保存 安卓手机触发返回键的时候,进行保存 示例一: 在video标签上面添 ...