开发者社区> 梦无矶> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

python 每日一练(二)

简介: 1.双重for循环的使用 2.字符串下标index的理解 3.python自带的collections库:Counter统计
+关注继续查看

新的一周开始啦,让我们先来三道python题练练手吧

本期知识点:

1.双重for循环的使用

2.字符串下标index的理解

3.python自带的collections库:Counter统计

第一题

输出九九乘法口诀表
for i in range(1, 10):
    # print(i)  # 行数
    for j in range(1, i+1):
        # print("列数:", j)
        print("%s * %s = %-2s" % (j, i, j*i), end="   ")
    print()    # print本身就会换行

输出结果

1 * 1 = 1   
1 * 2 = 2   2 * 2 = 4   
1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   
1 * 4 = 4   2 * 4 = 8   3 * 4 = 12  4 * 4 = 16  
1 * 5 = 5   2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
1 * 6 = 6   2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
1 * 7 = 7   2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
1 * 8 = 8   2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
1 * 9 = 9   2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81  

第二题

找出单词 “mengwuji” 在 字符串“Hello,my name is mengwuji,You can also call me xiaozai” 中出现的位置,找不到返回-1
print(a.index("H")) #输出0 (返回H的下标,下标从0开始)

print(a.index("mengwuji")) #输出17 (返回mengwuji字符串的第一个字符的下标)

print(a.index("n")) #输出9 (返回字符串中第一个n的下标)

#下面这个注意,左闭右开,10是可以取的下标,20是不取的下标,即如果n的下标为20,则不在此范围
print(a.index("n", 10, 20)) #输出19 (返回字符串中下标10-20之间第一个n的下标 )
 
# print(a.index("q"))  # ValueError: substring not found (取不存在的字符则会报错)

if "mengwuji" in a:
    print(a.index("mengwuji")) #输出17
else:
    print("字符串中无此字符")

# 三元表达式
print(a.index("mengwuji") if "mengwuji" in a else "字符串中无此字符") #输出17

第三题

输入一个字符串 str, 输出第 m 个只出现过 n 次的字符,如在字符串 "你说说测试小仔是不是梦无矶测试开发之路的小仔" 中,
找出第2个只出现1 次的字符,输出结果:不

解决思路:
利用 collections 库的 Counter方法统计字符串每个单词出现的次数

方法一:

from collections import Counter

a = "你说说测试小仔是不是梦无矶测试开发之路的小仔"
m = 2  # 第几个
n = 1  # 出现的次数
b = Counter(a)
print(b)
print(dict(b))  # 输出 {'你': 1, '说': 2, '测': 2, '试': 2, '小': 2, '仔': 2, '是': 2, '不': 1, '梦': 1, '无': 1, '矶': 1, '开': 1, '发': 1, '之': 1, '路': 1, '的': 1}

s = []
for i, j in dict(b).items():
    # print(i, j)
    if j == n:
        s.append(i)
print(s) #输出 ['你', '不', '梦', '无', '矶', '开', '发', '之', '路', '的']
print(s[m-1]) #输出 不 (在字符串中,下标是比个数少一,所以这里需要减一)

方法二:

# 列表推导式
a = "你说说测试小仔是不是梦无矶测试开发之路的小仔"
m = 2  # 第几个
n = 1  # 出现的次数
b = Counter(a)
print([i for i, j in dict(b).items() if j == n][m-1]) #输出 不

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Python训练营】Python每日一练----第1天:购物单
【Python训练营】Python每日一练----第1天:购物单
17 0
python求解一元二次方程
python求解一元二次方程
46 0
python 线程池的实现
定义一个ThreadPool 在创建了一个ThreadPool中执行一个函数, 直接开启指定要求数量的线程, 接着又一个借口add_job()方法, 将要执行的函数放到维护的queue中, 而一开始开启的线程就是不断循环从维护的queue获取数据并执行任务即可, 反正queue中存放的就是任务(函...
852 0
python-函数入门(二)
一、函数对象 什么是函数? 函数是第一类对象,指的是函数名指向的值(函数)可以被当做数据去使用 1.函数的特性 1.函数可以被引用,即函数可以把值赋值给一个变量 def foo(): print('from foo') foo() func=foo #引用,赋值 func() print(foo) print(func) 2.
965 0
Python之每日一练生成激活码
接着上一篇文章继续:Python之每日一练1 第 2 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券) 一、问题分析 这里我参考产生唯一随机码的方法分析这篇文章的思路:主键+随机码的方式. 这种方法优点:使用也比较简单,不用直接去查询数据库,而最大的优点是查询的时候,可以根据邀请码直接得到主键id, 然后根据id去数据库查询(速度很快),再比较查询出来的邀请码和用户提交的邀请码是否一致。
2038 0
Python——循环
for循环 L = ['Adam', 'Lisa', 'Bart'] for name in L: print name while循环 N = 10 x = 0 while x < N: print x x = x + 1 退出...
744 0
+关注
31
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载