鱼C论坛

 找回密码
 立即注册
查看: 1601|回复: 8

[已解决]新手求助!一个关于类型判断的提问

[复制链接]
发表于 2021-1-13 16:46:44 | 显示全部楼层 |阅读模式

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

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

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

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

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

代码:
  1. s=input('请输入:')
  2. def myfunc(s):
  3.     dic={'num':0,'alpha':0,'space':0,'other':0}
  4.     num=0
  5.     alpha=0
  6.     space=0
  7.     other=0
  8.     for i in s:
  9.         if i.isdigit():
  10.             dic['num']+=1
  11.         elif i.isalpha():
  12.             dic['alpha']+=1
  13.         elif i.isspace():
  14.             dic['space']+=1
  15.         else:
  16.             dic['other']+=1
  17.     return dic
  18. print(myfunc('+0-0skahe817jashf wet1'))#这一行括号里面的是什么意思呀
复制代码
最佳答案
2021-1-13 17:00:24
AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

你提问的
print(myfunc('+0-0skahe817jashf wet1'))#这一行括号里面的是什么意思呀

这个括号里就是一个字符串
代码的作用在于统计其中的各类字符数目
并打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-13 16:49:16 | 显示全部楼层
本帖最后由 AresFC 于 2021-1-13 16:53 编辑

我尝试把最后一行换成
  1. print('字符串中有数字',dic.get['num'],'个,字母',dic.get['alpha'],'个,空格',dic.get['space'],'个,其他类型'+dic['other']+'个')
复制代码

但是遇到了错误 请问如何才能调用函数里面定义的内容(比如本例的字典)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 16:51:53 | 显示全部楼层
  1. s=input('请输入:')
  2. def myfunc(s):
  3.     dic={'num':0,'alpha':0,'space':0,'other':0}
  4.     num=0
  5.     alpha=0
  6.     space=0
  7.     other=0
  8.     for i in s:
  9.         if i.isdigit():
  10.             dic['num']+=1
  11.         elif i.isalpha():
  12.             dic['alpha']+=1
  13.         elif i.isspace():
  14.             dic['space']+=1
  15.         else:
  16.             dic['other']+=1
  17.     return dic
  18. print(myfunc(s))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-1-13 16:55:23 | 显示全部楼层

请问是什么意思?最后一行直接print(myfunc(s))就好了是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 16:58:49 | 显示全部楼层
AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

函数的返回值是一个字典
而函数的传入参数是一个字符串
传入字符串后,直接打印返回值即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 17:00:24 | 显示全部楼层    本楼为最佳答案   
AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

你提问的
print(myfunc('+0-0skahe817jashf wet1'))#这一行括号里面的是什么意思呀

这个括号里就是一个字符串
代码的作用在于统计其中的各类字符数目
并打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 17:02:04 | 显示全部楼层
AresFC 发表于 2021-1-13 16:55
请问是什么意思?最后一行直接print(myfunc(s))就好了是吗

不是的,他给你的代码是通过键盘输入的字符串s
然后调用时用print直接把返回值打印出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

明白了!多谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 17:11:16 | 显示全部楼层
AresFC 发表于 2021-1-13 17:09
明白了!多谢!!

记得给个最佳哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 10:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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