AresFC 发表于 2021-1-13 16:46:44

新手求助!一个关于类型判断的提问

本帖最后由 AresFC 于 2021-1-13 16:53 编辑

新手求助!请问代码最后一行是什么意思?有更优化的写法吗?

要求:用户输入字符串,写函数用来计算传入字符串中【数字】、【字母】、【空格】以及【其他】的个数。

代码:s=input('请输入:')
def myfunc(s):
    dic={'num':0,'alpha':0,'space':0,'other':0}
    num=0
    alpha=0
    space=0
    other=0
    for i in s:
      if i.isdigit():
            dic['num']+=1
      elif i.isalpha():
            dic['alpha']+=1
      elif i.isspace():
            dic['space']+=1
      else:
            dic['other']+=1
    return dic
print(myfunc('+0-0skahe817jashf wet1'))#这一行括号里面的是什么意思呀

AresFC 发表于 2021-1-13 16:49:16

本帖最后由 AresFC 于 2021-1-13 16:53 编辑

我尝试把最后一行换成print('字符串中有数字',dic.get['num'],'个,字母',dic.get['alpha'],'个,空格',dic.get['space'],'个,其他类型'+dic['other']+'个')
但是遇到了错误 请问如何才能调用函数里面定义的内容(比如本例的字典)?

逃兵 发表于 2021-1-13 16:51:53

s=input('请输入:')
def myfunc(s):
    dic={'num':0,'alpha':0,'space':0,'other':0}
    num=0
    alpha=0
    space=0
    other=0
    for i in s:
      if i.isdigit():
            dic['num']+=1
      elif i.isalpha():
            dic['alpha']+=1
      elif i.isspace():
            dic['space']+=1
      else:
            dic['other']+=1
    return dic
print(myfunc(s))

AresFC 发表于 2021-1-13 16:55:23

逃兵 发表于 2021-1-13 16:51


请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

昨非 发表于 2021-1-13 16:58:49

AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

函数的返回值是一个字典
而函数的传入参数是一个字符串
传入字符串后,直接打印返回值即可

昨非 发表于 2021-1-13 17:00:24

AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

你提问的print(myfunc('+0-0skahe817jashf wet1'))#这一行括号里面的是什么意思呀
这个括号里就是一个字符串
代码的作用在于统计其中的各类字符数目
并打印出来

昨非 发表于 2021-1-13 17:02:04

AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

不是的,他给你的代码是通过键盘输入的字符串s
然后调用时用print直接把返回值打印出来了

AresFC 发表于 2021-1-13 17:09:14

昨非 发表于 2021-1-13 17:02
不是的,他给你的代码是通过键盘输入的字符串s
然后调用时用print直接把返回值打印出来了

明白了!多谢!!

昨非 发表于 2021-1-13 17:11:16

AresFC 发表于 2021-1-13 17:09
明白了!多谢!!

记得给个最佳哦
页: [1]
查看完整版本: 新手求助!一个关于类型判断的提问