您的位置:首页 > 编程语言 > Python开发

Python基础入门第六课--字符串

2018-05-01 19:39 120 查看
版权声明:属于好吃的柚子,先吃柚子,再拿走。 https://blog.csdn.net/qq_34454366/article/details/80156890

    1.前言 

        开门见山,首先来看这样一个简单的程序,我们称它为“仪式感”。        

>>>print “Hello,World!”
       基本上在你学过的编程语言中,当你安装好一个编辑器或者IDE,配置好你的环境,首先就是想再屏幕上打印出“Hello World!”,但是这个东西到底是什么呢? 是字符串(也就是一串字符)。字符串在几乎所有真实可用的Python程序中都会存在,并且有多种用法,其中最重要的用法就是表示一些文本。我们将分以下的类别来说一下字符串的具体用法。

    注意:在HTML/XML编辑器里面生成的python代码会有类似<span style="color:#333333;">的标签语言,这部分不在代码里面,请自动忽略。

    2.单引号字符串和转义引号

        在你的Pythonshell里面输入以下的代码,注意自己观察区别。
>>> "Hello,World!"
'Hello,World!'        
>>>"Let's go"
"Let's go"
>>> '"Hello my Wrold!",youzi said'
'"Hello my Wrold!",youzi said'

    在上述的代码中,你应该可以看到以下几点:

  1. 输入时候字符串带的是双引号,输出为单引号。
  2. 输入的时候单引号和双引号互相交替出现,但是并没有影响最后的结果。

    但是有人就这样想了,我能不能在已经包含单引号的字符串中再使用单引号去把整个字符串括起来?你可以试试看。

>>> ‘Let's go’
File "<stdin>", line 1
‘Let's go’
^
SyntaxError: invalid syntax
    看!是不是出现了语法错误,原因在哪里?

    当你使用正确的单引号或者双引号来包括整个字符串时候,解释器可以做出正确合理的处理,上述的例里面解释器无法正确解释第二个单引号后面的内容,不知道怎么去处理它。处理的方法也很灵活,我们可以像上面三个正确例子第三个一样,采用双引号去包括整个字符串,也可以像下面这样处理。

>>>'Let\'s go!'
"Let's go!"
    这样是不是很省事,解释器就会认为你是一个聪明的人。原因在哪里?解释器会明白第二个单引号不是字符串的结束标记,就是一个普通的字符,从而可以正确的打印出你想要的结果,对于双引号也可以采用这样的方式来转义。

    3.字符串方法

    1.字符串表示:str和repr

     str和repr实际上是值被转换为字符串的两种方法,可以通过str函数和repr函数对相应的值进行操作。str函数会把值转换为合理形式的字符串,而repr函数会创建一个字符串,以合法的Python表达式的形式来表示值,来看下面的例子。 

>>>print repr("Hello,World!")
'Hello World!'
>>>print str("Hello,World!")
Hello,World!
    其中我们的repr(s)也可以写做`s`  (注意是反引号嗷),在什么地方可以用到呢?看一看下面这个例子就知道咯。
>>> money=1000
>>> print "The iphoneX is " +money
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
    矮油,怎么有错误,再来
>>> money=1000
>>> print "The iphoneX is " + `money`
The iphoneX is 1000
    看见了没有,神不神奇。但是在Python3.x里面我们已经不再使用反引号了,希望你一直坚持使用repr函数去编写一些程序。简单、简洁、易懂。

    2.字符串拼接

    直接上列子,大家一看就懂。


>>> "America's leader say" '"I am volunteer join the CPC"' #Python直接拼接你输入的正确表达的字符串
'America\'s leader say"I am volunteer join the CPC"'
>>> x='Hello' #拼接错误
>>> y='World!'
>>> x y
File "<stdin>", line 1
x y
^
SyntaxError: invalid syntax

    不怕不怕,再来。

>>> x='Hello' #换一种方式再拼接
>>> y='World!'
>>> x+y
'HelloWorld!'

    3.长字符串的表示

    嗯哼,看一下这个代码:
>>> print '''This is very long sting
... It continues here
... And it's not over yet
... "Hello,World!"
... Still here'''
This is very long sting
It continues here
And it's not over yet
"Hello,World!"
Still here
    长字符串表示的方法也很简单,如果你想写很多行,那么记得用三个引号代替普通引号,当然也可以使用三个双引号。在这种处理方式中,你可以在字符串里面既使用单引号也使用双引号,而不需要用反斜杠去转义。    似不似很方便很强大嘞,记住它,以后会很有用。

    4.原始字符串

    还记得C语言里面的换行符嘛,\n,这个磨人的小妖精,好像我们在最后的print语句里面都要用到它,那么它在python里面会有什么样的效果呢,我们来看看。

>>> print 'Hello,\nGoogle'
Hello,
Google
    感觉看起来好像很棒的样子,我们再来看看。
>>> path='D:\nsomeplace'
>>> path
'D:\nsomeplace'
>>> print path
D:
someplace
    这你你想要的吗?你要按照这样的路径肯定找不到你想要的文件,虽然在某一方面\n还是能起到一定的作用,可是我们还是尽可能的去避免它。从而就有了我们的原始字符串,原始字符串不会把反斜杠当做特殊字符,在原始字符串输入的字符都会保持它原来的状态,最原始的状态嗷。

    来看看:

>>> print r'D:\nsomeplace'
D:\nsomeplace
>>> print r'D:\nsomeplace\noplace\anywhere'
D:\nsomeplace\noplace\anywhere
    原始字符串以r开头,按常理来说可以在原始字符串里面放入任何字符,注意这一点就好:不能在原始字符串结尾输入反斜杠(除非你对反斜杠进行转义),来看看。
>>> print r"This is illegal\"
File "<stdin>", line 1
print r"This is illegal\"
^
SyntaxError: EOL while scanning string literal
    再来咯
>>> print r'This is llegal' '\\'
This is llegal\
    啊哈,是不是得到了你想要的结果咩。

    4.input和raw_input的关系

    看一个比较典型的例子,输入youzi以后得到下面的输出结果。
name=input("What is your name? ")
print "Hello, " + name + "!"
/usr/local/bin/python2.7 /Users/yangjiayuan/PycharmProjects/day/day02/sys.py
What is your name? youzi
Traceback (most recent call last):
File "/Users/yangjiayuan/PycharmProjects/day/day02/sys.py", line 24, in <module>
name=input("What is your name? ")
File "<string>", line 1, in <module>
NameError: name 'youzi' is not defined

Process finished with exit code 1
    想一想问题在哪里?

    input函数假设用户会输入正确并且合法的字符串,怎么样才算合法的呢?在这里,就应该输入“youzi”,而不应该直接输入youzi。

>>> name=input("What is your name:")
What is your name:'youzi'
>>> print "Hello" + name + '!'
Helloyouzi!
     再来想想,用户不是设计程序的人,怎么会注意到这些呢?还要输入合法的字符串,不存在的。用户做的只需要输入自己认为准确的用户名就好了。这就产生了raw_input函数,这个函数将用户输入的数据作为原始数据放入字符串中。看一个我们前面见过的程序。
import getpass

_username='alex'
_password='123'
user=raw_input("Please input username:")
pwd= raw_input("Please input password:")
if user==_username and pwd==_password:
print("Welcome user %s login"%user)
else:
print("Wrong username or password")
/usr/local/bin/python2.7 /Users/yangjiayuan/PycharmProjects/day/day02/login.py
Please input username:alex
Please input password:123
Welcome user alex login

Process finished with exit code 0
    在python3里面不再有raw_input函数了,取而代之的就只是input函数,这在后面的章节的有些程序里面会体现出来,请大家注意观察。

    好了,关于字符串的概述就先说这么多。以后还会有大量的实例来让大家看的,路还很长,加油各位!

    下一章节预告--序列



       


阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: