一.字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,
也可以是双引号
我们知道,python以方便著称,它的每一个设计一定有它的用意,当我看到这句话时,就在想,这种设定的用意是什么。为什么别的语言没有的设定python就有了。
在书中是这么说的:这种灵活性让你能够在字符串中包含引号和撇号
当时我还不太明白,于是打开了idea,dev-c++,pycharm,三种语言进行比较。然后发现,c和java要想输出 This is a string,“123456” 这样包含双引号的字符串,就必须用转义字符
String s="This is a string,\“123456\” “;
把引号转义过来。
而python因为多了’ ’ 也可以表示括住的是字符串,所以可以直接在’'里写”"而不需要转义,即
s2=‘This is a string,“123456”’
二.字符串的常用函数
当我在一个字符串后表面点一下之后,pycharm出现该画面:
于是我决心把它出现的函数都搞懂。
1.lower()
它的作用是把字符串的所有大写字母都转成小写字母
2.upper()
与lower()作用相反
3.format()
在python里,这是一个格式化字符的方法,但是我觉得叫它格式化函数并不准确,准确地说,它应该是填充格式化内容的函数。
什么是格式?
请假条有请假条的格式,检讨书有检讨书的格式。我们先来看一张请假条的图片:
这就是请假条的格式
格式是死的,信息是活的,所以在程序里,我们用format函数去填好这张请假条,这样,请假条代码只需要写一次,就可以给无数人使用。我猜测,网上请假,就是用format填充函数去请的。我们输入的信息就是format的参数。
顺便提一句,在python里,用"""三对引号就可以任意像平时在纸上写字那样分行。
补充知识:input()函数就是输入函数,x=input(),x就等于你等下在控制台输入的值。括号里可以写提示文字,等下你们看见程序结果就知道了。代码如下:
s="""尊敬的{0}老师:
我是{1}班学生,我叫{2},因{3}事情需请假,我家住在{4},联系电话{5}。
出行方式:{6}
离校时间:{7},返校时间:{8}。
班主任签字: 年级主任签字:
请假人:{9}
{10}年{11}月{12}日"""
tsurname=input("请输入老师的姓氏:")
cnumble=input("请输入你所在的班级:")
myname=input("请输入你的姓名:")
reason=input("请输入请假原因:")
address=input("请输入家庭地址:")
phone=input("请输入联系电话:")
mode=input("请输入出行方式:")
leavetime=input("请输入离校时间:")
returntime=input("请输入返校时间:")
print("请输入落款时间:")
x=input("年:")
y=input("月:")
z=input("日:")
print(s.format(tsurname,cnumble,myname,reason,address,phone,mode,leavetime,returntime,myname,x,y,z))
运行结果:
这就是程序输出结果。怎么样?还是有点好玩的。另外,format的功能比这更加全面。
第一,{}里的数字是函数参数的索引,如果交换,填充的内容也会交换,比如你写了如下代码:
s='这次选美大赛的前4名是:{0},{1},{2},{3}'
print(s.format('林黛玉','薛宝钗','刘亦菲','上官婉儿'))
运行出如下结果:
突然你觉得你们家婉儿才最好看,而你又刚好不喜欢林妹妹悲切的气质,于是你想把她二人的名次换一下,那么不需要移动姓名,只需要动两个数字就行:
s='这次选美大赛的前4名是:{3},{1},{2},{0}'
print(s.format('林黛玉','薛宝钗','刘亦菲','上官婉儿'))
结果如下:
再强调一下,{}里的数字不是指括号的个数,而是format()函数()里参数的索引,就像数组的下标一样。此图为证
第二,它可以用key来填充
不知道key是啥的没关系,简单地说它就是一个索引,只不过这个索引可以是指明的汉字或其它符号,而不会限制于数字。
s='{name}好呀,你有{object}吗'
print(s.format(name='小帅哥',object='女朋友'))
运行结果:
同样,我好奇用key比用数字索引有什么方便之处,然后发现它因为函数参数指明了变量名,所以函数括号里的内容不用按顺序来写,我把object写在前面,name写在后面,不过因为我只调换了变量名,没调换内容,所以输出的句子有点怪
第三,可以用列表来填充
没学列表没关系,它其实就是其它语言里的数组。
list0=['一年级','二年级','三年级','四年级','五年级','六年级']
print('{list[0]}的小偷,{list[1]}的贼,{list[2]}的美女没人追,{list[3]}的帅哥一大堆,{list[4]}的情书满天飞,{list[5]}的情侣一对对'.format(list=list0))
print('{0[0]}的小偷,{0[1]}的贼,{0[2]}的美女没人追,{0[3]}的帅哥一大堆,{0[4]}的情书满天飞,{0[5]}的情侣一对对'.format(list0))
两行print表示两种用列表填充的方式,用0来替代字符串里的列表名也是挺方便的。运行结果如下:
第四,可以用字典来填充
字典没学的同学以后再来看吧,我继续讲我的
dict={'a':'一片雨','b':'谁梦里'} #字典
s='你挥毫{name[a]},随风去入{name[b]}'
print(s.format(name=dict))
注意name 和 dict 的 key一定要一样。运行结果:
第五,魔法参数的用法
list=['我','你']
dict={'a':'人间','b':'天堂'}
print('{}在{a}彷徨,寻不到{}的{b}'.format(*list,**dict))
运行结果如下:
可以看到,用到列表或者字典时,用魔法参数*list,**dict要方便地多
再上一个单独用地例子: