Crossin的编程教室

标题: 【Python 第13课】 字符串 [打印本页]

作者: crossin先生    时间: 2014-4-23 17:27
标题: 【Python 第13课】 字符串
字符串就是一组字符的序列(序列!又见序列!还记得我说过,range就是产生一组整数序列。今天仍然不去细说它。),它一向是编程中的常见问题。之前我们用过它,以后我们还要不停地用它。

python中最常用的字符串表示方式是单引号(‘’)和双引号("")。我还是要再说:一定得是英文字符!

'string'“string”的效果是一样的。

可以直接输出一个字符串
print ‘good’

也可以用一个变量来保存字符串,然后输出
str = ‘bad’
print str

如果你想表示一段带有英文单引号或者双引号的文字,那么表示这个字符串的引号就要与内容区别开。

内容带有单引号,就用双引号表示
"It's good"

反之亦然
‘You are a "BAD" man’

还有一种在字符串中表示引号的方法,就是用\,可以不受引号的限制

\'表示单引号,\"表示双引号
‘I\'m a \"good\" teacher’

\被称作转译字符,除了用来表示引号,还有比如用
\\表示字符串中的\
\n表示字符串中的换行

\还有个用处,就是用来在代码中换行,而不影响输出的结果:
"this is the\
same line"

这个字符串仍然只有一行,和
"this is thesame line"
是一样的,只是在代码中换了行。当你要写一行很长的代码时,这个会派上用场。

python中还有一种表示字符串的方法:
三个引号(‘’‘)或者("""

在三个引号中,你可以方便地使用单引号和双引号,并且可以直接换行
'''
"What's your name?" I asked.
"I'm Han Meimei."
'''

【作业时间】
用print输出以下文字:

1.
He said, "I'm yours!"

2.
\\_v_//

3.
Stay hungry,
stay foolish.
              -- Steve Jobs

4.
*
***
*****
***
*



作者: s201073009    时间: 2015-1-24 14:13
求答案呀。。。
作者: xiaohuzai    时间: 2015-2-16 16:01
1:
  1. print 'He said, "I\'m yours!"'
复制代码
2:
  1. print "\\\_v_//"
复制代码
3:
  1. print '''Stay hungry,
  2. stay foolish.
  3.             -Steve Jobs'''
复制代码
4:
  1. print "*\n***\n*****\n***\n*"
复制代码

作者: cross    时间: 2015-4-21 09:15
print 'He said,"I\'m yours!"'
print '\\\\_v_//'
print 'Stay hungry\nstay foolish\n                --Steve Jobs'
print '''*\n***\n*****\n***\n*'''
作者: UFO    时间: 2015-5-4 21:19
  1. print ('He said,"I\'m yours!"')
  2. print (r'\\_v_//')
  3. print ('\\\_v_//')
  4. print ('''Stay hungry,
  5. stay foolish.
  6.         -- Steve Jobs''')
  7. print ('''*
  8. ***
  9. *****
  10. ***
  11. *''')
复制代码

作者: lovia    时间: 2015-5-27 18:48
  1. print '''He said,"I'm yours!"'''
  2. print "\\\_v_//"
  3. print "Stay hungry,\nstay foolish\n         --Steve Jobs"
  4. print "*\n***\n*****\n***\n*"
复制代码

作者: catherinemic    时间: 2015-12-28 11:33
  1. print 'He said, "I\'m yours!"'
  2. print '\\\\_v_//'
  3. print '''
  4. Stay hungry,
  5. stay foolish.
  6.                  -- Steve Jobs
  7. '''
  8. print '*\n***\n*****\n***\n*'
复制代码

Python8.png (3.77 KB, 下载次数: 703)

Python8.png


作者: weiliu    时间: 2015-12-28 19:25
我好笨,刚学到的“\n用来换行”就忘记了。。。
作者: 弹星者    时间: 2016-2-15 21:30
为啥 print ('\\\_v_//') 的输出和print ('\\\\_v_//')的输出一样呀
作者: crossin先生    时间: 2016-2-16 11:21
弹星者 发表于 2016-2-15 21:30
为啥 print ('\\\_v_//') 的输出和print ('\\\\_v_//')的输出一样呀

因为\\相当于\
单个\如果不会跟后面的字符产生转义,那也是\
作者: 德坤    时间: 2016-4-4 15:13
再来温习一遍
作者: 追风    时间: 2016-4-30 15:20
我觉得用三个引号这种方法很方便
作者: python-learner    时间: 2016-8-15 22:01
print '''HE said,"I'm yours!"'''
print '\\\_v_//'
print """Stay hungry,
stay foolish.
- Steve Jobs"""
print """*
***
*****
***
*"""
作者: python-learner    时间: 2016-8-15 22:15
crossin先生 发表于 2016-2-16 11:21
因为\\相当于\
单个\如果不会跟后面的字符产生转义,那也是\

print '\\_v_//'
print '\\\_v_//'
print '\\\\_v_//'
运行后结果是:
\_v_//
\\_v_//
\\_v_//

按照您的解释,最后一行运行的时候,系统将'\\认定为了引号;可前面两行都是认定'\为引号。不同情况下,系统认定的标准是不一样的吗?
作者: crossin先生    时间: 2016-8-16 15:08
python-learner 发表于 2016-8-15 22:15
print '\\_v_//'
print '\\\_v_//'
print '\\\\_v_//'

认定为引号?这里和引号没关系吧
\' 是 '
这里的问题只是 \\ 表示字符 \
作者: python-learner    时间: 2016-8-16 22:05
crossin先生 发表于 2016-8-16 15:08
认定为引号?这里和引号没关系吧
\' 是 '
这里的问题只是 \\ 表示字符 \

好的,我懂了,谢谢老师
作者: l0ve1o24    时间: 2016-12-4 17:02
print'he said,\"i\'m yours\"'
print'\\\\_v_//'
print'stay hungry,\nstay folish.\n      --steve jobs'
print'*\n***\n*****\n***\n*'

作者: crossin先生    时间: 2016-12-5 16:20
l0ve1o24 发表于 2016-12-4 17:02
print'he said,\"i\'m yours\"'
print'\\\\_v_//'
print'stay hungry,\nstay folish.\n      --steve jobs' ...

print 后面要有个空格,不然有些情况会出问题
作者: l0ve1o24    时间: 2016-12-6 14:40
crossin先生 发表于 2016-12-5 16:20
print 后面要有个空格,不然有些情况会出问题

谢老师提醒
作者: ponber    时间: 2016-12-19 20:32
print ''' He said,"i'm yours" '''
print ' He said,\"i\'m yours\" '
print '\\\\_v_//'
print 'Stay hungry,\nstay foolish.\n    --Steve Jobs'

# 结合以前的for循环:
a=1
for i in range(1,4):
    for j in range(0,a):
        print'*',
    print
    a=a+2
b=3
for m in range(1,3):
    for n in range(0,b):
        print'*',
    print
    b=b-2
作者: qdqqqiang    时间: 2017-5-14 10:33
a1 = "He said,\"I\'m yours!\""
a2 = "\\\\_V_//"
a3 = "Stay hungry,\nStay foolish.\n--Steve Jobs"
a4 = "*\n**\n*****\n***\n*"
print(a1)
print(a2)
print(a3)
print(a4)

作者: qdqqqiang    时间: 2017-5-14 10:34
crossin先生 发表于 2016-2-16 11:21
因为\\相当于\
单个\如果不会跟后面的字符产生转义,那也是\

老是,请问他们在论坛里面回复,前面有01020304每行这样代码格式是怎么弄的。。。谢谢
作者: crossin先生    时间: 2017-5-14 19:23
qdqqqiang 发表于 2017-5-14 10:34
老是,请问他们在论坛里面回复,前面有01020304每行这样代码格式是怎么弄的。。。谢谢 ...

回复框里有个 <> 符号,就是加代码
作者: qdqqqiang    时间: 2017-5-15 12:23
crossin先生 发表于 2017-5-14 19:23
回复框里有个  符号,就是加代码
  1. print ("谢谢老师!")
  2. print ("我下次再仔细点!")
复制代码

作者: dxw551354    时间: 2018-3-1 13:16
输出雪花可以用for循环实现
b = 5
a = 1
for n in range(1,b+1):
    print('*'*a)
    n =a+2
    a = a+2
    #print('n=',n)
    if a>b:
        a=a-2
        break
for m in range(1,b):
    a = a-2
    print('*'*a)
    m = a+1
    #print('m=',m)
    if  a<0:
        a = a+2
        break
作者: qijirufeng    时间: 2018-3-22 20:25
本帖最后由 qijirufeng 于 2018-3-22 20:28 编辑

prinfile:///C:/Users/Administrator/Desktop/1t为啥后面跟'''和换行跟'''结果不同 2.png 1.png
作者: cheer    时间: 2021-8-11 10:52
cross 发表于 2015-4-21 09:15
print 'He said,"I\'m yours!"'
print '\\\\_v_//'
print 'Stay hungry\nstay foolish\n                --Steve Jobs'

全对。开心~  不过要记住的规则越来越多了有种学英语语法的感觉




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5