• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > Python做题提示stringindexoutofrange

Python做题提示stringindexoutofrange

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了python string index,python string,python int转string,python int to string,python string模块等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:Python做题 提示 string index out of range
描述:

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

请构建一个完整的程序,要求接下列输入,然后将这段英文转化为Pig Latin语言,将输出填入到空格中。

Python is intended to be a highly readable language It is designed to have an uncluttered visual layout frequently using English keywords where other languages use punctuation Furthermore Python has a smaller number of syntactic exceptions and special cases than C or Pascal

我的解法:

s='Python is intended to be a highly readable language It is designed to have an uncluttered visual layout frequently using English keywords where other languages use punctuation Furthermore Python has a smaller number of syntactic exceptions and special cases than C or Pascal'
wordlist=s.split(' ')

def lower(word):
    if word[0]>='A'and word[0]<='Z':
        return chr(ord(word[0])+32)+word[1:]
    else:
        return word
wordlist=[lower(word) for word in wordlist]

yuanyin=['a','e','i','o','u']
yuanyin2=yuanyin+['y']
def fuyinkaitou(word):##针对辅音开头的情况
    index=1
    while (word[index] not in yuanyin2):
        index+=1
        if index==(len(word)-1):break
    newword=word[index:]+word[:index]+'ay'
    return newword
wordlist2=[]    
for word in wordlist:
    #print word,wordlist2
    if word[0] in yuanyin:
            #print "swich 1",word
            word+='hay'
            wordlist2.append(word)

    elif word.startswith('qu'):
        #print "swich 2",word
        word=word[2:]+'quay'
        wordlist2.append(word)

    else:
        #print "swich 3",word
        word=fuyinkaitou(word)
        wordlist2.append(word)
print wordlist2

总是报string index out of range的错误,应该是辅音开头那个函数有问题,应该怎么改呢?


解决方案1:

错误原因在于下面这个函数

def fuyinkaitou(word):##针对辅音开头的情况
    index=1
    while (word[index] not in yuanyin2):
        index+=1
        if index==(len(word)-1):break
    newword=word[index:]+word[:index]+'ay'
    return newword

你的index是从1开始的,如果调用fuyinkaitou('C'), 则会出现错误
IndexError: string index out of range
可以修改成:

def fuyinkaitou(word):##针对辅音开头的情况
    index=1
    if len(word) == 1:
        return word + 'ay'
    else:
        while (word[index] not in yuanyin2):
            index+=1
            if index==(len(word)-1):break
        newword=word[index:]+word[:index]+'ay'
        return newword

另外你的程序最后输出的列表形式,要修改成字符串形式。可以把最后一句改为:

print ' '.join(wordlist2)


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Python做题提示stringindexoutofrange

相关文章

  • 2017-06-07 Flask使用Jinja2做导航菜单时,如何判断是当前页面
  • 2017-06-07 python爬虫C/C++中调用python代码的一个疑问
  • 2017-06-07 (golang)database/sql下的DB对象找来找去找不到dbmu字段?
  • 2017-06-07 七牛云存储有个小BUG
  • 2017-06-07 为啥gif加处理参数后没什么效果?
  • 2017-06-07 如何用一个github帐号同步多台主机上代码?
  • 2017-06-07 python中r'\'出错?
  • 2017-06-07 关于flask的目录结构问题。
  • 2017-06-07 (python)uwsgi+nginx+flask如何在控制台打日志?
  • 2017-06-07 资源地址能自定义域名吗

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 我们有上百G的资源,如何快速上传到七牛
    • jekyll静态网站,用七牛javascriptAPI上传pdf/doc/docx文件,可能实现么?有这样的例子么?
    • Scrapy+phantonjs爬去速度过慢?
    • 上传速度特别慢
    • insight无法断点求助
    • (VFP)怎样用语言控制命令按钮
    • 七牛水印没有办法自适应原图?
    • 64位SQL2008的数据导出功能能够导出VFPDBF吗
    • 微信红包牛牛作弊器七牛云的图片放到微信公众文中显示不了
    • pythonfromfileutilsimportFileUtils文件操作

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有