必须学好编程 发表于 2022-10-12 02:31:12

19讲字符串的计算统计,两个函数的方式怎么用

def count(*params):
    le = len(params)
    cs = 1
    for each1 in params:
      print('第 %d 个字符串中有:'%cs)
      cs += 1
      print(js(each1))


def js(*params):
    params = str(params)
    yw = 0
    sz = 0
    kg = 0
    qt = 0
    for each2 in params:
      if each2.isalpha:
            yw += 1
      elif each2.isdigit:
            sz += 1
      elif each2 == '\t':
            kg += 1
      else:
            qt += 1
    print('英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。'%(yw,sz,kg,qt))


print(count('wo ai cff 1314,enen','ha hah,111'))

jackz007 发表于 2022-10-12 08:29:45

       你这个代码不是已经工作得很好了吗?

必须学好编程 发表于 2022-10-12 21:46:28

jackz007 发表于 2022-10-12 08:29
你这个代码不是已经工作得很好了吗?

没有啊,你运行下试试,我这个程序应该是第一个定义count的时候的for循环语句有问题{:5_96:}答案看了,比我的简单多了,但是还是想按我这个思路走下来

jackz007 发表于 2022-10-12 22:17:29

本帖最后由 jackz007 于 2022-10-12 22:22 编辑

必须学好编程 发表于 2022-10-12 21:46
没有啊,你运行下试试,我这个程序应该是第一个定义count的时候的for循环语句有问题答案看了,比 ...

def count(* params):
    for each1 in range(len(params)):
      print('第 %d 个字符串中有:' % (each1 + 1))
      js(params)                      # 函数无返回值,不可作为 print() 的参数

def js(params) :
    yw = sz = kg = qt = 0
    for each2 in params:
      if each2 . isalpha()   : yw += 1       # isalpha() 缺括号
      elif each2 . isdigit() : sz += 1       # isdigit() 缺括号
      elif each2 == ' '      : kg += 1
      else                   : qt += 1
    print('英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。'%(yw,sz,kg,qt))

count('wo ai cff 1314,enen','ha hah,111')      # 函数无返回值,不可作为 print() 的参数

      运行实况:
D:\\Python>python xs.py
第 1 个字符串中有:
英文字母 11 个,数字 4 个,空格 3 个,其他字符 1 个。
第 2 个字符串中有:
英文字母 5 个,数字 3 个,空格 1 个,其他字符 1 个。

D:\\Python>

必须学好编程 发表于 2022-10-13 21:47:44

谢谢大佬,就是最后这个print的用法没太明白,为啥这个里面最后一步不能用print

def palindrome(string):
    list1 = list(string)
    list2 = reversed(list1)
    if list1 == list(list2):
      return '是回文联!'
    else:
      return '不是回文联!'
print(palindrome('上海自来水来自海上'))

这个里面就可以用

jackz007 发表于 2022-10-14 08:05:51

本帖最后由 jackz007 于 2022-10-14 08:15 编辑

必须学好编程 发表于 2022-10-13 21:47
谢谢大佬,就是最后这个print的用法没太明白,为啥这个里面最后一步不能用print

def palindrome(string) ...

   如果把函数放在 print() 里面调用,那就是需要打印函数的返回值,可是,这两个函数都没有返回值,就是说,没有 return 语句,最后的执行结果,会输出一个 None。

迦勒底的doctor 发表于 2022-10-14 15:49:55

jackz007 发表于 2022-10-12 22:17
运行实况:

请问下大佬,如果要把这两个函数用return返回,而不是用print输出
这个要怎么实现呢

jackz007 发表于 2022-10-14 16:14:09

本帖最后由 jackz007 于 2022-10-14 16:22 编辑

迦勒底的doctor 发表于 2022-10-14 15:49
请问下大佬,如果要把这两个函数用return返回,而不是用print输出
这个要怎么实现呢

def count(* params):
    return ) for i in range(len(params))]    # 返回包含元组的列表,元组个数是 params 中字符串的个数,元组的内容是对该字符串的统计结果。

def js(params) :
    yw = sz = kg = qt = 0
    for each2 in params:
      if each2 . isalpha()   : yw += 1
      elif each2 . isdigit() : sz += 1
      elif each2 == ' '      : kg += 1
      else                   : qt += 1
    return yw , sz , kg , qt                              # 返回字符串 params 中,各种字符的统计结果

x = count('wo ai cff 1314,enen' , 'ha hah , 111')
for k in range(len(x)) :
    print('第 %d 个字符串中有:' % (k + 1))
    print('英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (x , x , x , x))
      函数的角色应该是 "哑巴" ,只负责加工信息,数据的获取和输出由主函数来做,有了这些东西,接下来该干什么,以及应该怎么干,由主程序来做决定,就好比我们人类,组织分工要有层次,老板们只负责决策和表面上的事情,力气活统统归马仔。

必须学好编程 发表于 2022-10-14 23:41:28

jackz007 发表于 2022-10-14 16:14
函数的角色应该是 "哑巴" ,只负责加工信息,数据的获取和输出由主函数来做,有了这些东西, ...

谢谢大牛{:5_108:}

迦勒底的doctor 发表于 2022-10-15 20:42:01

jackz007 发表于 2022-10-14 16:14
函数的角色应该是 "哑巴" ,只负责加工信息,数据的获取和输出由主函数来做,有了这些东西, ...

万分感谢
您的代码,我好几遍,才算是理解了小甲鱼视频里面的一些用法
非常感谢
页: [1]
查看完整版本: 19讲字符串的计算统计,两个函数的方式怎么用