为了账号安全,请及时绑定邮箱和手机立即绑定

获取IndexError:python中的字符串索引超出范围

获取IndexError:python中的字符串索引超出范围

慕无忌1623718 2021-09-25 21:03:10
获取IndexError: python中的字符串索引超出范围,我是python的初学者并试图制作一个程序来计算大写和小写字母的总数,我还尝试了一些解决方案,如删除字符串的空格,string.replace(" ", "")但再次出错,我的代码string = input('Enter string upto 25 words: ')if len(string) > 25:  print('Please enter a string less than 25 words.')else:  string.replace(" ", "")  total_upr = 0  total_lwr = 0  i = 0  while i < 25:    print(i)    if string[i].islower():      total_upr += 1    elif string[i].isupper():      total_lwr += 1    i += 1  print(f"'{string}' contains {total_lwr} lower-case letters and {total_upr} upper-case letters.")
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

尝试使用len(string)而不是 25 ,因为在这里您将遍历所有 25 个整数。但是在您的情况下,您的字符串中应该有 25 个字符并不是强制性的,它可以是 25 个或小于 25 个。因此,当它小于 25 个字符并且您尝试使用第 25 个字符时,它将显示错误:

代替 :

while i < 25 :

尝试:

while i < len(string)


查看完整回答
反对 回复 2021-09-25
?
翻阅古今

TA贡献1780条经验 获得超5个赞

你也可以试试这个:


string = input('Enter string upto 25 words: ')

if len(string) > 25:

    print('Please enter a string less than 25 words.')

else:

    total_lwr = sum(map(str.islower, string))

    total_upr = sum(map(str.isupper, string))

你不需要为此使用 while,也不需要替换任何东西。更少的代码。:)


查看完整回答
反对 回复 2021-09-25
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

的同时,应该如下图所示:


while i < len(string):

编码 :


string = input('Enter string upto 25 words: ')

if len(string) > 25:

  print('Please enter a string less than 25 words.')

else:

  string.replace(" ", "")

  total_upr = 0

  total_lwr = 0

  i = 0

  while i < len(string):

    print(i)

    if string[i].islower():

      total_lwr += 1

    elif string[i].isupper():

      total_upr += 1

    i += 1

  print(f"'{string}' contains {total_lwr} lower-case letters and {total_upr} upper-case letters.")



查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信