例子打卡第四天(17-18)


目录

17.

方法一:普通方法

 方法2:正则匹配

18.


17.

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

思路:英文,数字,空格这几样 string库中的判断语法,判断中文这个我卡了好久,看到川川的爬虫训练信息,突然想起来,好像可以用正则匹配

方法一:普通方法

""" 
CSDN : heart_6662
PYTHON amateur   
"""
import string
s = input("请输入一个数:\n")
english_word = 0
space = 0
digit = 0
other = 0
for c in s:
    if c.isalpha():
        english_word += 1
    elif c.isspace():
        space += 1
    elif c.isdigit():
        digit += 1
    else:
        other += 1
print('英文有%d,空格有%d,数字有%d,中文有%d' % (english_word,space,digit,other))

 方法2:正则匹配

我去查看一下正则

4E00~9FFFh 是中文的数字区域
import re
s = input("请输入一个数:\n")
char = re.findall(r'[a-zA-Z]',s)
num = re.findall(r'[0-9]',s)
blank = re.findall(r' ',s)
chi = re.findall(r'[\u4E00-\u9FFF]',s)
other = len(s)-len(char)-len(num)-len(blank)-len(chi)
print("字母:", len(char),"\n数字:", len(num),"\n空格:",len(blank),"\n中文:",len(chi),"\n其他:",other)

18.

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

思路:什么的例子第一次为2,第二为2*10+2,第三个为2*10*10+2*10+2.............

每次从上一次的数乘10,再加上一次将数加起来为新的下一位数,最后用 叠加 求和

sum = 0
total = 0
n = int(input("请输入一位数:"))
a = int(input("请输入一位数:"))
for i in range(n):
    sum += (10**i)
    total += sum*a
print("总和为",sum)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heart_6662

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值