Python入门学习第五周:字符串·作业

python学习第五周字符串相关学习内容总结与作业

第五周主要是对字符串相关操作的学习包括

字符串的定义字符的序列

基本字符运算

求长度len(str)函数

拼接+str = str1 + ‘pinjie’

重复*name * 3 就是把name的字符串内容输出三次

成员运算in判断一个字符串是否是另一个字符串的子串

for语句 枚举字符串中的每个字符

字符串索引每个字符串都有一个索引值索引从0前向或-1后向开始索引运算符[]

切片操作选择字符串的子序列语法 [start : finish]

start子序列开始位置的索引值

finish子序列结束位置的下一个字符的索引值

如果不提供 start 或者 finish默认 start 为第一个字符开始finish

为最后一个字符 。

获得逆字符串[ : : -1 ]

字符串方法: 对象提供的函数

如my_str.replace(old,new)生成一个新的字符串,其中使用new替换old子串

find方法查找字符在字符串中索引位置的方法

split方法分割字符串

title方法首字母大写其它字母小写的格式

字符串比较

任何一个字符都对应一个数字

直接比较对应数字的大小

字符串格式化

format 方法

http://docs.python.org/2/library/string.html#format-string-syntax

正则表达式 re.search()

https://docs.python.org/2/library/re.html

课后作业

  1. 编写程序完成下列题目2分

题目内容

“Pig Latin”是一个英语儿童文字改写游戏整个游戏遵从下述规则

(1). 元音字母是‘a’、‘e’、‘i’、‘o’、‘u’。字母‘y’在不是第一个字母的情况下也被视作元音字母。其他字母均为辅音字母。例如单词“yearly”有三个元音字母分别为‘e’、‘a’和最后一个‘y’和三个辅音字母第一个‘y’、‘r’和‘l’。

(2). 如果英文单词以元音字母开始则在单词末尾加入“hay”后得到“Pig Latin”对应单词。例如“ask”变为“askhay”“use”变为“usehay”。

(3). 如果英文单词以‘q’字母开始并且后面有个字母‘u’将“qu”移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如“quiet”变为“ietquay”“quay”变为“ayquay”。

(4). 如果英文单词以辅音字母开始所有连续的辅音字母一起移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如“tomato”变为“omatotay” “school” 变为“oolschay”“you” 变为“ouyay”“my” 变为“ymay ”“ssssh” 变为“sssshay”。

(5). 如果英文单词中有大写字母必须所有字母均转换为小写。

输入格式:

一系列单词单词之间使用空格分隔。

输出格式

按照以上规则转化每个单词单词之间使用空格分隔。

输入样例

Welcome to the Python world Are you ready

输出样例

elcomeway otay ethay ythonpay orldway arehay ouyay eadyray

时间限制500ms内存限制32000kb

参考代码

个人完成的代码

运维人员写出的程序思维没有开发人员那么抽象还需要再多努力。

new_words=‘‘
Output_Words=‘‘
#Input_Words = []
Input_Words = raw_input().split()

for Word in Input_Words:
    Word = Word.lower()
    #print Word
    if Word[0] in ‘aeiou‘:
       new_words =  Word + ‘hay‘
    elif Word[0:2] == ‘qu‘:
       new_words =  Word[2:len(Word)] + ‘quay‘
    else:
        Tmp_Chars = Word[0]
        #print ‘haha:‘,Tmp_Chars
        for Char in Word[1:len(Word)]:
            if Char not in ‘aeiouy‘:           
                Tmp_Chars =Tmp_Chars + Char                
            else:
                break
            
        n=len(Tmp_Chars)
        if n == len(Word):
            new_words  = Word + ‘ay‘
        else:
            new_words = Word[n:len(Word)]+Word[0:n]+‘ay‘
    if len(Output_Words) == 0:
        Output_Words = Output_Words +  new_words
    else:
        Output_Words = Output_Words + ‘ ‘  +  new_words       
print Output_Words

作业做完了以后网上跟人交流的时候一个开发同学给的参考结果

个人认为这份代码写的比较专业先思考程序的结构设计然后再实现相关代码不像我一边理解题面的意思一边写代码错了很多次才终于通过代码测试。这一题主要用到了本周学习到的字符分割split用法字符串的拼接还有就是字符在字符串中in的用法。

Input_string = raw_input()
string_wds=[]
string_wds =Input_string.split()
print string_wds

def re_index( word ):
    indx = 0
    for i in word:
        if indx == 0 and (i not in ‘aeiou‘):
            indx = indx + 1
        else:
            if indx >0 and ( i not in ‘aeiouy‘):
                indx = indx + 1
            else:
                break
    return  indx

new_string=‘‘
final_string=‘‘
for i in string_wds:
    i = i.lower()
    if i[0] in ‘aeiou‘:
        new_string = i+‘hay‘
    else:
        if i[0] == ‘q‘ and  i[1] == ‘u‘:
            new_string = i[2:len(i)]+‘qu‘ +‘ay‘
        else:
            new_string =i[re_index(i):len(i)]+i[0:re_index(i)]+‘ay‘
    if  len( final_string) == 0:
        final_string=final_string+new_string
    else:
        final_string=final_string+ ‘ ‘+ new_string 
print  final_string

2.编写程序完成下列题目1分

题目内容

依次判断一系列给定的字符串是否为合法的 Python 标识符。

输入格式:

一系列字符串每个字符串占一行。

输出格式

判断每行字符串是否为合法的 Python 标示符如果合法则输出 True否则输出 False。

输入样例

abc

_def

21gh

输出样例

True

True

False

时间限制500ms内存限制32000kb

刚开始搞不清楚如何实现多行输入感觉这个对于刚学的人是一个未知的知识点于是百度了下找到相关说明才完成这个题最关键的输入要求。功夫在课外。这一题用到了这周课程中关于字符串的正则匹配的用法整个实现过程还是非常简单的。

import re

stopword = ‘‘
str = ‘‘
for line in iter(raw_input, stopword):
  str += line + ‘\n‘

for words in str.split():
    if not re.search(u‘^[_a-zA-Z0-9]+$‘,words):
        print False
    elif not re.search(u‘^[_a-zA-Z]+$‘,words[0]):
        print False
    else:
        print True

3编写程序完成下列题目2分

题目内容

依次计算一系列给定字符串的字母值字母值为字符串中每个字母对应的编号值A对应1B对应2以此类推不区分大小写字母非字母字符对应的值为0的总和。例如Colin 的字母值为 3 + 15 + 12 + 9 + 14 = 53

输入格式:

一系列字符串每个字符串占一行。

输出格式

计算并输出每行字符串的字母值。

输入样例

Colin

ABC

输出样例

53

6

时间限制500ms内存限制32000kb

个人感觉这一题是比较简单的个人私自用了一个超纲的方法通过字符串获取ascii值来进行编号值的替代。可能有更简单的方法需要看老师公布的其他人员写的答案期待有更好的答案出现。

import re

stopword = ‘‘
str = ‘‘
for line in iter(raw_input, stopword):
  str += line + ‘\n‘

for words in str.split(‘\n‘):
    if len(words) > 0 :
        count = 0
        words = words.lower()
        for c in words:
            if not re.search(‘[a-z]‘,c):
                num = 0
            else:
                num = ord(c) - ord(‘a‘) + 1
                #print "num is", num
                count += num
        print count

由于中间有事而且第一题碰到了点问题第二个测试集不清楚老师用了什么示例来进行测试一直没有通过搞的这次作业跨了一年12月30日-1月4日才完成。

时间: 2024-10-24 02:19:28

Python入门学习第五周:字符串·作业的相关文章

python 入门学习 载抄

python入门 解释型语言 和编译型语言 计算机本身不能识别高级语言,当我们运行一个程序的时候,需要一个“翻译” 来把 高级语言转换成计算机能读懂的语言. “翻译”过程分两种: 编译 编译型语言在执行程序前,首先会通过编译器执行一个编译的过程,把程序编译成机器语言. 之后,程序再次运行的时候,就不要“翻译”了,而是可以直接执行.比如C语言. 编译型语言的优点在于在运行程序的时候不用解释,可直接利用已经翻译过的文件. 解释 解释型语言就没有编译的过程,而是在程序运行的时候,通过解释器逐行解释代码

Python入门学习:1.变量和简单的数据类型

python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 ??变量,顾名思义是一个可变的量,每个变量都存储一个值--与变量关联的信息. 1message = "hello world!"2# message 是一个变量3print(message) ??在python中使用变量时,需要遵循一些规则和指南. 变量名只能包含字母.数字和下划线.变量名可以字母或者下划线打头,但不能以数

python入门学习:7.函数

python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 ??使用关键字def告诉python要定义一个函数,紧接着跟着函数名,冒号.后面的缩进构成函数体.例如: 1def func_name():2    函数体34def greet_user():5    """显示简单问候语"""6    print("hel

Python入门学习指南--内附学习框架

Python入门学习指南 最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台: 78486745 ,欢迎大家加入共同交流学习. 对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃.以下是结合Python的学习经验,整理出的一条学习路径,主要有四个阶段 NO.1 新手入门阶段,学习基础知识 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所有教程在基础知识介绍方面都差不多,区别在于讲的是否足够细(例如运

201671010140. 2016-2017-2 《Java程序设计》java学习第五周

java学习第五周心得体会        本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运行注解上就可以感受到,程序的长度,涉及到的知识越来越多.        本周学习主要关注超类与子类的关系--继承,继承是面向对象最显著的一个特性,从已有的类(超类)中派生出新的类(子类),新的类能继承已有类的数据属性和行为,并能扩展新的能力. Java继承是使用已存在的类的定义作为基础建立新类的技术

python入门学习:8.类

python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 ??面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象.根据类来创建对象被称为实例化,这让你能够使用类.8.1.1 创建dog类??下面创建一个dog类: 1calss Dog(): 2 3    def __init__(self,name,age): 4        self.name = n

Python入门学习:一步步教你怎么用Python写贪吃蛇游戏

前几天,有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇),再合适不过了. 这里通过一个Python入门学习的例子跟大家详细讲解一下! 先通过下面这个效果图来感受下吧! 1 环境 操作系统:Windows Python版本:3.7.3 2 需求分析 我们先来回顾下贪吃蛇中的游戏元素及游戏规则. 首先呢,需要有贪吃蛇.有食物:需要能控制贪吃蛇来上下移动获取食物:贪吃蛇在吃取食物后,自身长度增加,同时食物消

2019最全Python入门学习路线,绝对是最全

近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学习路线图. 对于一个零基础的想学习python的朋友来说,学习方法很重要, 学习方法不对努力白费 一定要有一个正确的学习线路与方法 推荐下小编的Python学习q群:882492178,不管你是小白还是大牛,小编我都欢迎,不定期分享干货, 包括小编自己整理的一份2019最新的Python和0基础入门

python入门学习

最近闲来无事,搞搞py交易吧! 作为一个快速崛起的语言,python编程确实是好用的不得了,当然这不是说他就可以代替其他语言,这是目前所有语言都不可能做到的: python有他的优点: 简单,简洁,易懂,入门快: 学过python的应该都有体会,python比其他很多语言都要轻便的多,易于编写: 比如python的hello world: #!/usr/bin/python print('hello world') 就这一句就ok了: 简单的了解下python,下面我们来了解下python2和3