「Python」2020.03.22学习笔记 | 第五章字符串-2.5道小题+鼓励语

  • 学习测试开发的Day80,真棒!
  • 学习时间为1H35M
  • 第八次全天课(上午视频1H20M-2H5M)

练习5:统计一句话的单词数量

例如: I am a 18 years old boy ! Do you believe , do you?

提示:

1.想办法把标点和数字给过滤掉(用列表,用新的字符串进行拼接)

2.split

3.len(长度)

自己的:

代码

import string
print(string.ascii_letters)
s="I am a 18 years old boy ! Do you believe , do you?"
s2=""
for i in s: 
    if  (i>='a' and i<='z') or (i>='A' and i<='Z'):
        s2+=i
    elif i==" ":
        s2+=i
    else:
        i=""
print(s2)
s3=s2.split()
print(len(s3))
    

输出结果:

PS D:\0grory\day8> python .\word_num.py
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
I am a  years old boy  Do you believe  do you
11
PS D:\0grory\day8>

老师的

代码:

s="I am a 18 years old boy ! Do you believe , do you?"
s=list(s)
for i in range(len(s)):
    if not((s[i]>='a' and s[i]<='z') or (s[i]>='A' and s[i]<='Z')): 
        s[i]=" "
print(s)
print("单词数量%s"%len("".join(s).split()))

结果:

PS D:\0grory\day8> python .\teacher_word.py
['I', ' ', 'a', 'm', ' ', 'a', ' ', ' ', ' ', ' ', 'y', 'e', 'a', 'r', 's', ' ', 'o', 'l', 'd', ' ', 'b', 'o', 'y', ' ', ' ', ' ', 'D', 'o', ' ', 'y', 'o', 'u', ' ', 'b', 'e', 'l', 'i', 'e', 'v', 'e', ' ', ' ', ' ', 'd', 'o', ' ', 'y', 'o', 'u', ' ']
单词数量11
>>> "a b c".split()
['a', 'b', 'c']

>>> len("a b c".split())
3
>>>

如果把中国的节假日时间都利用起来,那么你就比别人多了3分之一的时间,

如果有两年的时间,把所有节假日都用来学习,那么你就比别人领先了很多很多

有一个同学是2个娃的妈妈,过年期间没有回家,自己在家学了一个星期,把测试框架重新搭了一遍,薪水涨了80%,苦没有白吃的

达到:只要你在,没有你解决不了的问题

微软老大爷,一个人2个星期搞定了一个团队3-4个月没有搞定的问题
这就是专家与菜鸟的区别

美国程序员是出于热爱,从小就喜欢编程

练习6:把单词逆序输出

自己的

代码

s="I am a 18 years old boy ! Do you believe , do you?"
s=list(s)
for i in range(len(s)):
    if not((s[i]>='a' and s[i]<='z') or (s[i]>='A' and s[i]<='Z')): 
        s[i]=" "
result1="".join(s).split()
print(result1[::-1])

输出:

PS D:\0grory\day8> python .\nx_word.py
['you', 'do', 'believe', 'you', 'Do', 'boy', 'old', 'years', 'a', 'am', 'I']
PS D:\0grory\day8>

老师的

代码:

s="I am a 18 years old boy ! Do you believe , do you?"
s=list(s)
for i in range(len(s)):
    if not((s[i]>='a' and s[i]<='z') or (s[i]>='A' and s[i]<='Z')): 
        s[i]=" "

print(" ".join("".join(s).split()[::-1]))

输出:

PS D:\0grory\day8> python .\nx_word.py
you do believe you Do boy old years a am I

练习7:找出句子中第二长的所有单词!

s="you do believe you Do Cboy old years a am I"

自己的

代码

s="you do believe you Do Cboyu old years a am I"
s=s.split()
len_i=[]
len_s=len(s)
for i in range(len_s):
    len_i.append(len(s[i]))
print(max(len_i))

result=[]

for i in range(len_s):
    if len(s[i])==max(len_i):
        print((max(len_i),s[i]))
    else:
        result.append(s[i])
print(result)

len_j=[]
for i in range(len(result)):
    len_j.append(len(result[i]))
print(max(len_j))
max2num=max(len_j)
for j in range(len(result)):
    if len(result[j])==max2num:
        print(result[j])

结果输出:

PS D:\0grory\day8> python .\second.py
7
(7, 'believe')
['you', 'do', 'you', 'Do', 'Cboyu', 'old', 'years', 'a', 'am', 'I']
5
Cboyu
years
PS D:\0grory\day8>

最后一道题本来都做出来了,又想改成方法的样子,简练一些,结果没有弄出来,还浪费了15分钟TT,又想试着字典的方式,结果发现,如果是同样长度的单词,value值只变成一个了,就暂时放弃了...

{0: 'you', 1: 'do', 2: 'believe', 3: 'you', 4: 'Do', 5: 'Cboyu', 6: 'old', 7: 'years', 8: 'a', 9: 'am', 10: 'I'}
PS D:\0grory\day8> python .\second_dict.py
{1: 'I', 2: 'am', 3: 'old', 5: 'years', 7: 'believe'}
1 I
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容