|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 woaizy1990 于 2018-6-18 17:40 编辑
我现在把count('I love fishc.com.', 'I love you, you love me.')这个条件代入进去哦.
我按照我的思路来写一下,大佬方便看看我哪一步思路出问题了?
def count(*param): #创建count函数和形参,现在就按参数count('I love fishc.com.', 'I love you, you love me.')来演化
length = len(param) #length被赋值len(param),因为该count()内的参数一共有2组,length = 2
for i in range(length): #将range(length)代入i中;既 for i in range(2)
letters = 0 #赋值0
space = 0 #赋值0
digit = 0 #赋值0
others = 0 #赋值0
for each in param{i}: #将param{i}的值赋予each. 可能论坛问题啊,大括号i不显示,我用花括号代替一下
if each.isalpha(): '''
letters += 1 就是这个地方没搞明白.根据上述条件,param第一次循环的时候,也就是param[0]应该指向的是count()参数中的
elif each.isdigit(): 第一组字符串,既'I love fishc.com.' 后续哪一句命令执行了 param[0]的继续拆分?还是哪一步我理解错了?
digit += 1 '''
elif each == ' ':
space += 1
else:
others += 1
print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。'
% (i+1, letters, digit, space, others))
========================================================================================
大家好,通过楼上2位朋友的教导我已经找到到哪里出问题了.
是我自己range()函数理解的不透彻造成了这种问题:
我现在将错误的思路保留在上面..如果有跟我犯同样错误的初学朋友希望别跟我一样 : ))))
=======================================================================================
for each in param{i}: 就已经将 param 参数中第0组的内容拆分了.所以无需再特意,
之前我的理解将param{i}第一次循环,既param[0], 'I love fishc.com.' 是整体代入each
实际for each in param{i} 的意思是将'I love fishc.com.'中所有的字符串内容分别代入each : )))
想了一下午没想明白真是笨死了,再次感谢@Ruina和@thexiosi朋友的解答.十分感谢!
================================================================
2楼3楼朋友答案都帮助我解开问题了额,但是最佳答案只能选一个..满纠结: (
所以我就
import random
x = random.randint(0,10)
if x > 5:
print('2楼')
else:
print('3楼')
一次定胜负结果是2楼
本帖最后由 Ruina 于 2018-6-18 14:32 编辑
首先 param的第一个字符被赋值给 each 由后面的循环判断属性,结束后再把第二个字符赋值给each(具体理解参考 for in range )
(isalpha方法判断为字母则返回 True,否则返回 False,
为T跳出循环,否则继续判断isdigit,即是否为数字。
同理接下来判断是否为空,若都不是则为other)
param的所有字符全部判断一次后循环结束,打印结果
|
|