鱼C论坛

 找回密码
 立即注册
查看: 3367|回复: 10

19讲课后动手最后一题

[复制链接]
发表于 2014-1-10 11:30:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def statistics(*sentence):
        i= 0
        count = 0
        count1 = 0
        count2 = 0
        count3 = 0

        for each in sentence:
            if each.isalpha():
                count += 1
            elif each.isdigit():
                count1 += 1
            elif each.isspace():
                count2 += 1
            else:
                count3 += 1
        i += 1

        print('第',i,'个字符串共有:英文字母',count,'个','数字',count1,'个','空格',count2,'个','其他字符',count3,'个')

sentence = input('请输入字符串:')
statistics(*sentence)

我想实现能自己输入字符串并且计算如题目所要求的,但是为什么我代码只能返回给我一个值(我用逗号隔开了,也只有一个)不能像小甲鱼的那样有两个值,其他的好像没什么问题

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-1-10 14:21:02 | 显示全部楼层
  1.         i += 1

  2.         print('第',i,'个字符串共有:英文字母',count,'个','数字',count1,'个','空格',count2,'个','其他字符',count3,'个')
复制代码
这两句的缩进应该在for内而不是跟for一个级别~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-10 14:29:44 | 显示全部楼层

也不行。会变成
请输入字符串:尝试一下
第 1 个字符串共有:英文字母 1 个 数字 0 个 空格 0 个 其他字符 0 个
第 2 个字符串共有:英文字母 2 个 数字 0 个 空格 0 个 其他字符 0 个
第 3 个字符串共有:英文字母 3 个 数字 0 个 空格 0 个 其他字符 0 个
第 4 个字符串共有:英文字母 4 个 数字 0 个 空格 0 个 其他字符 0 个

input语句的时候输入文字加不加 ''  是不是都是字符串,只不过颜色不一样呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-10 15:23:55 | 显示全部楼层
FavouritePython 发表于 2014-1-10 14:29
也不行。会变成
请输入字符串:尝试一下
第 1 个字符串共有:英文字母 1 个 数字 0 个 空格 0 个 其他字符 ...

噢,你的意思是实现自己输入,但输入的时候分开多个字符串来识别并回馈吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-10 15:47:04 | 显示全部楼层
小甲鱼 发表于 2014-1-10 15:23
噢,你的意思是实现自己输入,但输入的时候分开多个字符串来识别并回馈吗?

差不多吧?我自己其实也不太明白。刚开始学。。。。。就是我想能随意输入参数,不论多少,都能返回跟题目一样的要求。该怎么改呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-10 16:14:39 | 显示全部楼层
FavouritePython 发表于 2014-1-10 15:47
差不多吧?我自己其实也不太明白。刚开始学。。。。。就是我想能随意输入参数,不论多少,都能返回跟题目 ...

这个的话你应该在外边做一个循环接受输入,并跟用户约定好没输入完成一个字符串的结束标志。不然的话单纯的“sentence = input('请输入字符串:')”是会将用户所有的输入作为一个字符串接受的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-11 14:13:28 | 显示全部楼层
小甲鱼 发表于 2014-1-10 16:14
这个的话你应该在外边做一个循环接受输入,并跟用户约定好没输入完成一个字符串的结束标志。不然的话单纯 ...

能有空写一段代码参考一下吗。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-11 14:41:33 | 显示全部楼层
FavouritePython 发表于 2014-1-11 14:13
能有空写一段代码参考一下吗。。。。,

稍微思考下就可以嘛,建议前边的课后作业重新自行完成一遍:
  1. inputList = []
  2. temp = input('请输入一段话(输入#表示不再接受输入):')
  3. inputList.append(temp)
  4. while temp != '#':
  5.     temp = input('请输入一段话(输入#表示不再接受输入):')
  6.     inputList.append(temp)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-14 15:44:46 | 显示全部楼层
小甲鱼 发表于 2014-1-11 14:41
稍微思考下就可以嘛,建议前边的课后作业重新自行完成一遍:

鱼哥,我还是没弄出来,前面作业我都已经重做三次了。。。。。
你把完整的代码写个给我看看呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-15 09:32:19 | 显示全部楼层
FavouritePython 发表于 2014-1-14 15:44
鱼哥,我还是没弄出来,前面作业我都已经重做三次了。。。。。
你把完整的代码写个给我看看呗
  1. def count(*param):
  2.     length = len(param)
  3.     for i in range(length):
  4.         letters = 0
  5.         space = 0
  6.         digit = 0
  7.         others = 0
  8.         for each in param[i]:
  9.             if each.isalpha():
  10.                 letters += 1
  11.             elif each.isdigit():
  12.                 digit += 1
  13.             elif each == ' ':
  14.                 space += 1
  15.             else:
  16.                 others += 1
  17.         print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))
  18.             
  19. temp = input('请输入一段话(输入#表示不再接受输入):')
  20. while temp != '#':
  21.     count(temp)
  22.     temp = input('请输入一段话(输入#表示不再接受输入):')
  23.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-15 10:59:53 | 显示全部楼层

哦哦。了解了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-11 12:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表