python测试开发之_字符串练习

编程学习是个漫长、逐渐累加复杂度、综合难度的一门工程。需要自我驱动,督促自己往前走。Python测试开发是本年度重点学习目标。

今天来一个字符串的练习题,重在思路,不断训练自己的思维。

题目:找出字符串中出现次数最多的字符,并输出其出现的位置

代码实现:

#encoding=UTF-8

s = "aaabbbhhiijk"

letter_count_dict={}

for i in s:

if letter_count_dict.has_key(i): #判断是否在字典中出现过

letter_count_dict[i]+=1

else: #没出现过就是1

letter_count_dict[i] = 1

print letter_count_dict

max_letter_occurrence=max(letter_count_dict.values())

#所有出现次数列出来,max函数取最大值

print max_letter_occurrence

max_occurrence_letters=[]

#空列表用来存储,因为有可能是1个或多个

for k,v in letter_count_dict.items():

if v==max_letter_occurrence:

#值=出现最大次数时

max_occurrence_letters.append(k)

#存到列表中

print max_occurrence_letters #遍历

for i in max_occurrence_letters:

max_occurrence_letter_positions = []

#存位置的列表

start_postion=0 #从0开始找

while 1:  #死循环

if s.find(i,start_postion) !=-1:   #!=-1表示找到了

max_occurrence_letter_positions.append(s.find(i,start_postion))

start_postion=s.find(i,start_postion)+1  #起始位置+1往后找防止记重,因为find找到后不会再找了

else:   #当已查找不到目标字母来,说明所有字母都找到了

print "%s positions:%s" %(i,max_occurrence_letter_positions )

break   #死循环需要加break

输出结果:

#{'a': 3, 'b': 3, 'i': 2, 'h': 2, 'k': 1, 'j': 1}

#3

#['a', 'b']

#a positions:[0, 1, 2]

#b positions:[3, 4, 5]

时间: 2024-08-12 12:44:38

python测试开发之_字符串练习的相关文章

python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)

前言 xadmin的详情页面主要是用form_layout布局,学会了完全可以不用写html代码,也能做出很好看的页面. xadmin的html页面是用的Bootstrap3框架设计的,layout布局用到的是django-crispy-forms框架,本篇详细讲下django-crispy-forms的官方文档案例 django-crispy-forms 当我们使用xadmin后台的时候,在INSTALLED_APPS里面同时添加了xadmin和crispy_forms这2个app,xadmi

python测试开发django-16.JsonResponse返回中文编码问题

前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面的User表,测试数据如下 user_name psw mail yoyo 123456 [email protected] yoyo2 111111 1 yoyo5 111111 0 接着上一篇[python测试开发django-15.查询结果转json(serializers)],如果数据库里面

Python测试开发-创建模态框及保存数据

Python测试开发-创建模态框及保存数据 原创: fin  测试开发社区  前天 什么是模态框? 模态框是指的在覆盖在父窗体上的子窗体.可用来做交互,我们经常会看到模态框用来登录.确定等等,到底是怎么实现这种弹出效果,bootstrap已经为我们提供了相应的组件. 1.界面原型 点击添加,弹出模态框, 然后输入 用户:tester, 消息:你好.如下图1所示: ▲图1 再点击保存,那么数据库就存入了以上输入的数据,查看界面的用户列表会显示tester,如下图2所示: ▲图2 2.开发过程 接下

2019第一期《python测试开发》课程,10月13号开学

2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20:30-22:30 报名费:报名费2000一人(周期2个月) 联系QQ:283340479 课表如下 课程主要涉及的内容: 1.httprunner框架以及web平台做接口自动化测试 (装逼必备) 2.django平台开发 (python开发必会) 3.pytest框架结合selenium做web自动化测试 (

python测试开发django-37.外键(ForeignKey)查询

前言 前面在admin后台页面通过设置外键,可以选择下拉框的选项,本篇主要讲解关于外键(ForeignKey)的查询 models设计 在上一篇的基础上新增一个BankName表,Card表通过外键关联到BankName class BankName(models.Model): '''银行信息''' bank_name = models.CharField(max_length=50, verbose_name="银行名称", default="") city =

python测试开发django-59.restful接口开发

前言 REST 不是什么具体的软件或者代码,而是一种思想.现在流行前后端分离开发项目,一般用 json 来交换数据. 相信写过模板的同学都知道,只要哪怕页面中的数据有一丝丝变动,那整个页面都需要重新渲染,这对性能无疑是巨大的浪费,并且页面中只有一些元素会和数据相联系, 比如列表中的 元素,如果数据有变化,能直接只更新 元素就好了,REST 就是为此而生. REST简介 什么是RESTful 面向资源? 先看REST是什么意思,英文Representational state transfer 表

Python测试开发之函数

对于初学者而言,感觉函数还是不是很好理解,尤其是当写一个脚本,或者是写一个算法,认为可能for循环就已经可以解决的问题为什么还要用函数来实现呢? 今天就来说一下函数的优点,其实函数的最大优点就是可重用,一个函数实现后可以被其他不同的脚本来调用,这也就是体现了代码的重用性. 函数的定义:def 函数名():,在定义函数时,一定要用关键字def开头,然后紧接着是函数名,括号里是要传的的参数,当然也可不传,最后面是个冒号: def add(x,y):    return x+y 这就是一个最简单的函数

学习【python 测试开发】

https://ke.qq.com/course/263945#tuin=107a3c8a https://testerhome.com/topics/11327 python版本:2.7.* 第一节 python开发速度快,是因为开源模块多,我们站在了巨人的肩膀上,所以在实现某个功能的时候,先去python的仓库里看是否已实现.开源仓库 http://pypi.python.org/pypi GUI:指可视化图形工具 如果用python做性能测试,建议用工具有:Locust python也可对

python学习随笔(三)_字符串

字符串***    是由一个个字符组成的有序的序列,是字符的集合    使用单引号,双向引号,三引号引住的字符序列    #三引号中可以放sql语句    字符串是不可变对象 字符串元素访问    字符串支持使用索引访问    有序列的字符集合,字符序列    字符串可以是个容器,可以被一个个迭代出来,因为它是有顺序的 字符串join连接*    "string".join(iterable) -> str        将可迭代对象连接起来,使用string作为分隔符