2018-08-22 day3

作业

在做下面的每个练习时,都编写一个独立的程序,并将其保存为名称类似于name_cases.py的文件

2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。

name1='uuz'
message='Hello %s,would you like to learn some Python today?'%(name1)
print(message)

输出显示:
Hello uuz,would you like to learn some Python today?

2-4 调整名字的大小写: 将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名。

name2='LeBron James'
print(name2.lower())
print(name2.upper())
print(name2.capitalize())

输出显示:
lebron james
LEBRON JAMES
Lebron james

2-5 名言: 找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):Albert Einstein once said, “A person who never made a mistake never tried anything new.”

name3='William Shakespeare'
word='"To be or not to be,this is a question."'
print(name3,'once said,',word)

输出显示:
William Shakespeare once said, "To be or not to be,this is a question."

2-6 名言2: 重复练习2-5,但将名人的姓名存储在变量famous_person 中,再创建要显示的消息,并将其存储在变量message 中,然后打印这条消息。

famous_person='William Shakespeare'
message='"To be or not to be,this is a question."'
print(famous_person+' once said,'+message)

输出显示:
William Shakespeare once said, "To be or not to be,this is a question."

2-7 剔除人名中的空白: 存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合"\t" 和"\n" 各一次。 打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数lstrip() 、rstrip() 和strip() 对人名进行处理,并将结果打印出来。

name5='\t\totaku\n\n'
print(name5)
print(name5.lstrip())
print(name5.rstrip())
print(name5.strip())
输出显示

总结

一.认识字符串

1.什么是字符串

a.用单引号或者双引号括起来的字符集就是字符串
b.字符串中每个独立的单元我们叫字符,
例如:字符串'abc123'中的'a','b','c','1','2','3'就是字符

2.转义字符
说明:python中没有字符类型,如果要表示字符,就是用一个长度是1的字符串表示
长度:指的就是字符串中字符的个数,例如:'abc' - 长度是3,'abc123, 你好' -长度是10

a.通过\把一些特殊的字符转换成一个具有特殊功能或者特殊意义的字符,就是转义字符。
b.常见的转义字符:

\n --   换行
\t --   制表符(相当于tab键)
\\ --   \
\' --   '

在计算字符串长度的时候,转义字符的长度是1。

3.Unicode编码

a.python中字符的编码采用的是Unicode编码
b.Unicode是采用两个字节对一个字符进行编码(2^15),能够将世界上所有的符号进行编码
c.Unicode编码中包含了ASCII码

将字符转换成指定的数值,这个过程就是编码。(编码的目的是方便计算机存储)
将数值转换成对应的符号的过程就是反编码(解码)

1.将Unicode码转换成字符:chr(编码)

print(chr(0xA001))

2.将字符转换成Unicode编码:ord(字符)

code1=ord('刘')
code2=ord('诗')      # 结果是十进制的
code3=ord('意')
print(hex(code1),hex(code2),hex(code3))

二.获取字符

字符串实质是一个不可变的序列,序列内容是字符。
一旦字符串确定,那么里面的字符和字符位置就不可变了,例如:'abc'

1.怎么获取单个字符
python中的字符串,可以通过下标(索引)来获取指定位置上的字符:字符串[索引]

说明:
a.字符串:可以是字符串值,也可以是字符串变量
b.[]:中括号是固定语法
c.索引:从0开始到字符串长度减1
-1 ~ -长度(-1对应的最后一个字符,-2对应的是倒数第二个字符)

注意:索引不能越界,否则会报错(产生异常)
str1='abcd' # a->0,b->1,c->2,d->3
2.获取部分字符(获取子串) —— 切片

字符串[下标1:下标2] : 从下标1开始,获取到下标2前的所有的字符
从下标1开始,每次下标值加1,一直加到下标2前

str2='hello world'

print(str2[0:4])    # hell
print(str2[2:7])    # llo w
print(str2[2:-1])   # llo worl
print(str2[3:12])   # 切片时下标可以越界,越界的时候就取临界值
字符串[下标1:下标2:步进]

从下标1开始获取,每次下标值增加步进值,每增加一次取一个字符,直到取到下标2为止
注意:
a.步进如果是正数,那么下标1对应的字符一定要在下标2对应的位置后面
b. 步进是负数,那么下标1对应的位置一定要在下标2对应的位置的前面

str3='helloPython'
print(str3[0:5:2])  # hel   步进:3  hl
print(str3[-1:5:-1]) # nohty

下标的省略

切片的时候,下标1和下标2是可以省略的

下标1省略:默认从开头开始获取(开头可能是字符串的第一个字符,也可能是字符串的最后一个)

str4='good good study,day day up'
print(str4[:4])
print(str4[:4:-1])

下标2省略:从下标1位置开始获取,获取到结束(结束可能是字符串的最后一个字符,也可能是字符串的第一个字符)

print(str4[1:])
print(str4[3::-1])

print(str4[:])      # good good study,day day up
print(str4[::-1])   # pu yad yad,yduts doog doog

str5='123456789'
print(str5[1::2])

三.字符串的相关运算

1. + 运算符
字符串1+字符串2:

python支持两个字符串相加,其效果就是将两个字符串拼接在一起产生一个新的字符串。

print('abc'+'123')
str1='world'
newstr='hello'+' '+str1
print(newstr)
2.* 运算符

字符串*整数:字符串重复多次

print('abc'*3)
3.所有的比较运算符
str1='abc'
print('abc'=='abc')
print(str!='ab')
比较大小

str1>str2; str1<str2
让str1中的每一位的字符,分别和str2中每一位的字符依次比较。
直到不同为止,再看不同字符中谁的编码值大或者小。

print('abcd'>'ac')
4.in 和 not in

str1 in str2:判断str1是否在str2中(str2是否包含str1,;str1是否是str2的子串)

print('abc' in 'a1b2cdefg')
print('f' not in 'python')
5.获取字符串长度
字符串的长度,指的是字符串中字符的长度

len()内置函数

str3='project'
print(len(str3),len('abc 123\n'))
补充:空串
str4=''
str5=""
print(len(str5))

len1=len(str3)  # len1=7
index=len1 -1   # 6
print(str3[-1],str3[len(str3)-1])
6.阻止转义
在字符串的最前面添加r/R可以阻止转义
print('a\nb','a\nb\\')
print(len('a\nb\\'))    # 4

print(r'a\nb',R'a\nb\\')
print(len(r'a\nb\\'))   # 6

print('a\\nb\\\\')  # a\nb\\
print('\\\n\\')     # \换行\

print(r'\\\n\\')    # \\\n\\

练习
str1=r'\nabc123' 求:str1[3] b
str2='abc123\123' 求:str2[-5] 3

四.字符串相关的方法

python为字符串提供了很多的内建函数

字符串.函数()
注意:这些所有的函数的功能都不会影响原来的字符串,而是产生一个新的字符串

str1='hello python'

1.capitalize() 将字符串的第一个字符转换为大写

newstr=str1.capitalize()
print(newstr)

print('abc'.capitalize())

2.center(width,fillchar)
让字符串变成width对应的长度,原内容居中,剩余的部分使用fillchar的值来填充

width-整数; fillchar-任意字符
print('abc'.center(10,'*'))

3.rjust(width,fillchar)
让字符串变成width对应的长度,原内容靠右,剩余的部分使用fillchar的值来填充

number='12'
new_id=number.rjust(4,'0')
print(new_id)

4.原字符串.count(str)
判断str值在原字符串中出现的次数
str-> 字符串

print('abcabaa'.count('ab'))

5.str1.join(str2)
在str2中的每个字符串之间插入一个str1

print('-+'.join('abc'))

6.str1.replace(old,new)
将str1中old全部替换成new

new_str='abcdahulapuyeahj'.replace('a','+')

7.str1.isalnum()
在str1中至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False

print('abc'.isalnum())

8.str1.isalpha()
如果str1至少有一个字符并且所有字符都是字母则返回True,否则返回False

print('abc'.isalpha())
print('a12c'.isalpha())

9.str1.isdecimal()
如果str1只包含十进制数字则返回True,否则返回False

print('23'.isdecimal())
print('23a'.isdecimal())

10.str1.isdigit()
如果str1只包含数字则返回True,否则返回False

print('123'.isdigit())
print('a123'.isdigit())

11.str1.isnumeric()
如果str1中只包含数字字符,则返回True,否则返回False

print('123'.isnumeric())
print('123d'.isnumeric())

12.str1.isspace()
如果str1中只包含空格,则返回True,否则返回False

print(' '.isspace())
print('a b'.isspace())

13.str1.istitle();str1.title()
如果str1是标题化的(见 title())则返回True否则返回 False
返回"标题化"的str1,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

print('The Sun'.istitle())
print('the sun'.title())
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容

  • 01.原码、反码、补码 计算机在存储数据的时候,都是以二进制的形式存储在计算机中(存一个数的补码),并且计算机只有...
    Ftr_阅读 267评论 0 1
  • 一、字符串 1.什么是字符串 用单引号或双引号括起来的字符集就是字符串'jfcsiufcs',"ivisl " ...
    fanzl阅读 267评论 0 0
  • A认识字符串 01什么是字符串 a.用单引号或者双引号括起来的字符集就是字符串,例:'jiang2323%%42!...
    xaidc阅读 119评论 0 0
  • 1.字符串 a.说明 python中没有字符类型,如果要表示字符,就要用一个长度是1的字符串表示。长度:指的就是长...
    nothingpy阅读 806评论 0 1
  • 经过里面的学习和实践,本人对一些技术和方法进行学习和研究。 越发觉得股票就像赌博,高手永远不只是在于技术的高超。更...
    4a112b18c09e阅读 208评论 0 1