zoukankan      html  css  js  c++  java
  • 自动化测试第三节python基础(字符串方法 数据类型 文件读写)

    for 循环:

    1、for循环写不了死循环
    2、else:循环"正常"结束后执行else

    例:

    for i in range(3):
    print(i)

    字典:

    1、字典是无序的

    2、循环字典中的keys,例如:

    dict1={'name':['nina','lucy','mike'],'age':[11,22,33]}

    for k in dict1:
        print(k)

    3、用in来判断一个值是不是字典里面的话,判断的是字典的key,例如:

    if 'name' in dict1:
       print('ok')

    4、key不存在的时候会返回报错信息:print(dict1['color'])

    5、get获取返回值时,如果查询结果不存在不会报错,支持返回一个指定值:print(dict1.get('haha','name'))

    6、支持改

    dict1['name']='yes'
    dict1.update(name='no')
    print(dict1['name'])

    7、支持增

    dict1['add']='miaomiao'
    dict1.setdefault('qq','ww')
    print(dict1)

    8、支持删

    del dict1['name']#删除一个key
    dict1.pop('age')#删除一个key
    dict1.popitem()#随机删
    print(dict1['name'])
    print(dict1.keys())#打印keys
    print(dict1.values())#打印value
    print(list(dict1.values()))#打印values,每个keys对应的value作为列表的一个元素,变成一个嵌套列表
    print(type(dict1.values()))#打印出valus的类型,类型为dict_values


    9、字典的嵌套

    user_info={
    'nina':
    {'age':28,'color':'blue'},
    'lily':
    {'age': 28, 'color': 'blue'}
    }
    print(user_info['nina']['age'])#打印出28

    user_info={
    'nina':
    {'age':28,'color':['blue','yellow'],'money':100},
    'lily':
    {'age': 28, 'color': 'blue','money':300
    }
    }
    print(user_info['nina']['color'][1])#打印出yellow:字典加列表的嵌套


    10、把字符串转换成字典:使用eval,例如:
    with open('b.txt','a+',encoding='utf8') as f:
    f.seek(0)
    new_user_info=eval(f.read())
    print(type(new_user_info))

    字符串方法:
    name = 'my \t name is {name},age is {age}.'
    print(name.capitalize()) # 大写
    print(name.center(50, '-')) # 使用-补足50个字符,把name放中间
    print(name.endswith('u')) # 是否以x结尾--常用---1
    print(name.expandtabs(30)) # 补\t的次数--了解
    print(name.find('n')) # 查找字符串的索引,找到不到返回-1---常用
    print(name.index('n')) # 查找字符串的索引,找不到直接报错
    print(name.format(name='niuniu', age=18)) # 这个是格式字符串,再第一节的博客里面已经写了---常用---2

    fill=input('请输入名字:')
    src = 'select username,password from user where name like "%{name}%" or "%{name}%";'#参数需要用{}括起来
    newsrc=src.format(name=fill)
    print(newsrc)

    print(name.format_map({'name': 'niuniu', 'age': 19})) # 这个也是格式化字符串,后面跟的是一个字典,字典在后面也会写

    print('abA123'.isalnum()) # 是否只包含数字和字母--了解,不用记
    print('abA'.isalpha()) # 是否是英文字母--了解,不用记

    print('122'.isdigit()) # 是否是数字--常用---3
    print('aa'.isidentifier()) # 是否是一个合法的变量名
    print('aa'.islower()) # 是否是小写字母
    print('AA'.isupper()) # 是否是大写字母
    print('Loadrunner Book'.istitle()) # 是不是一个标题,判断首字母是否大写--了解
    print('+'.join(['hehe', 'haha', 'ee']))# 拼接字符串,如使用+--必须会,列表变为字符串,连接list中的每一个元素,列表中的元素必须时字符串类型--常用---4
    print('+'.join(('hehe', 'haha', 'ee'))) # 拼接字符串,如使用+--必须会,列表变为字符串,连接list中的每一个元素,列表中的元素必须时字符串类型
    print(name.lower()) # 变成小写---常用---5
    print(name.upper()) # 变成大写---常用---6
    print('\nmysql \n'.lstrip()) # 默认去掉左边的空格和换行
    print('\nmysql \n'.rstrip()) # 默认去掉右边的空格和换行
    print('\nmysql \n'.strip()) # 默认去掉两边边的空格和换行,strip(i):表示删除字符串两边的i--常用---7
    p = str.maketrans('abcdefg', '1234567') # 前面的字符串和后面的字符串做映射
    print('cc ae gg'.translate(p)) # 输出按照上面maketrans做映射后的字符串

    # 下面是反解
    new_p = str.maketrans('1234567', 'abcdefg')
    print('cc ae gg'.translate(new_p))print('mysql is db.'.replace('mysql', 'oracle', 1)) # 替换字符串--常用---8
    print('mysql is db.'.replace(' ', '', 2)) # 替换字符串---表示去除中间的空格,替换2次
    print('mysql is is db'.rfind('')) # 返回最右边字符的下标
    print('1+2+3+4'.split('+')) # 切割字符串,返回一个list,如['1', '2', '3', '4']---常用---9
    print('1+2+3\n1+2+3+4'.splitlines()) # 按照换行符分割---常用--10
    print('Abcdef'.swapcase()) # 大小写反转

    username=['nina,18','qq,99','haha,24']#取列表中元素的切片
    for u in username:
    names=u.split(',')[0]
    print(names)


    数据类型
    http://www.nnzhp.cn/blog/archives/162---参考
    []表示列表,列表比字符串取值方便,便于增删改查
    names = ['nina','sault','alsa','bonny','clare']#一维数组
    下标,索引,角标
    计算机从0开始计数
    print(names[1])

    #增# #
    names.append('daring')#从末尾给列表增加元素
    names.insert(8,'yes')#指定位置添加元素,如果指定的下标不存在则在末尾添加
    numbers=[1,2,3,4,5]
    names.extend(numbers)#把number的元素加入到names这个列表中
    union=names+numbers#合并2个列表,把2个列表的元素放到union里面
    print(names+numbers)#打印出两个列表
    print(union)

    #查# #
    print(names)
    print(names.count('nina'))#查询元素出现的次数
    print(names.index('nina'))#查询元素的下标,有重复元素时只能返回第一个出现的下标
    names.reverse()#反转列表
    names.sort()#默认升序,写上reserve=True就是降序
    name.srot(reserve=True)
    print(names[-1])#下标-1表示最后一个元素
    others = [1,2,['qq','ww']]#二维数组
    three = [1,2,['qq','ww',[1,2,3]]]#三维数组
    print(three[2][2][1])#查询多维数组的元素
    print(three[-1][-1][1])#或如下,-1即取数组里面的最后一个元素
    print(three[-1].index('ww'))#查询嵌套列表的下标



    #改# #
    names[0]='ninanie'

    #删# #
    del names[0]
    names.pop()#默认删除最后一个元素
    names.pop(0)#如果传入下标,则删除指定位置的元素
    names.pop(9)#不存在下标时,越界会报错
    names.remove('sault')#删除列表中指定的元素,而非下标
    names.clear()#清空列表,变为一个空列表
    print(names)
    #切片:切片同样适用于字符串
    names = ['nina', 'sault', 'alsa', 'bonny', 'clare','wing',[11,22,33,44,55,66]]
    print(names[1:3])#切片取值顾头不顾尾,即从下标1开始取一直取到小于下标3的元素['sault', 'alsa']
    print(names[:3])#前面的下标可以不写,表示从头开始取
    print(names[1:])#后面的下标可以不写,表示取到最后
    print(names[:])#都不写,表示取原来的列表的全部元素
    numbers=[0,1,2,3,4,5,6,7,8,9,10,11,12]
    print(numbers[1:12:2])#表示切片的区间时[1:12],步长为2,即取下标1,3,5,7,9,11
    print(numbers[::1])#显示全列表元素,步长为1
    print(numbers[::-1])#切片里面如果步长是负数,是从后面往前面开始取值的,步长为1
    print(numbers[::-2])#切片里面如果步长是负数,是从后面往前面开始取值的,步长为2
    s = 'abcdefghijklmnopqrstuvwxyz'#字符串的值不可以修改,错误写法:s[0]=q
    print(s[:6:-1])#返回结果:zyxwvutsrqponmlkjih

    可变变量:如list
    不可变变量:如字符串,元组
    元组:小括号表示元组
    infos = ('root','198.168.0.1','3306',123456)
    print(infos.count('3306'))#统计元组中元素出现的次数
    print(infos.index('3306'))#返回元组中元素的索引,元组只能用index和count这两种方法
    print(infos[-1])#元组也支持切片,显示元组的最后一个元素
    print(infos[:2])#元组也支持切片,下标从头取到1
    print(infos[::-1])#元组也支持切片,步长为1

    循环list的时候,不要删除list中的元素,会导致元素的下标错位
    li=[1,1,2,3,4,5,6,7]
    for i in li:
    if 1%2!=0:
    li.remove(i)
    print(li)
    正确写法:

    li=[1,1,2,3,4,5,6,7]
    li2=li.copy()
    for i in li:
    if i%2!=0:
    li2.remove(i)
    print(li2)
    print(li)

    '''交换两个变量的值'''
    a=1
    b=2
    a,b=b,a
    print(a,b)
    a=a+b
    b=a-b
    a=a-b
    print(a,b)


    文件读写
    f=open('b.txt','r',encoding='utf8')
    f=open('b.txt','r+',encoding='utf8')#r+:读写模式,只要模式例沾上r,文件不存在时都会报错
    f=open('b.txt','w+',encoding='utf8')#w+:写读模式,只要沾上w,就会清空以前的内容
    f=open('b.txt','a+',encoding='utf8')#追加读模式
    print(f.read())#读取文件所有内容
    print(f.readlines())#返回一个字符串列表,list里面每个元素时文件的每一行
    print(f.readlines()[2:3])#读取某一行
    print(f.readline())#一次只读取一行
    打开文件有三种方式,默认时读的方式打开文件,文件存在且不往文件写东西的时候用w
    读 r,如果文件不存在会报错
    写 w,以写的方式打开文件不存在时,会新建一个文件;如果文件存在会清空原来的文件内容
    追加 a

    f.write('\n新增')#写内容,只能是字符串
    f.seek(0)#移动文件指针到最前,使写入新内容后可读取
    print(f.read())

    f.writelines(['123\n','www\n'])#写的是list

    f.seek(0)
    i=1
    for line in f:#循环一个文件的时候循环的是文件的每一行
    print('第{hang}行:line'.format(hang=i,line=line))
    i+=1
    f.close()

    with open('b.txt','a+',encoding='utf8') as f:#这种写法不需要再close文件
    f.seek(0)
    for line in f:
    print(line)

     
    
    
    
    
  • 相关阅读:
    Struts系列教材 (四)- 基础
    Struts系列教材 (三)- 基础
    Struts系列教材 (一)- 基础
    Hibernate系列教材 (三十)- 注解
    网络之AFNetworking
    iOS网络学习之“远离NSURLConnection 走进NSURLSession”
    ios中常见数据存储方式以及SQLite常用的语句
    利用"仿射变换"制作“酷炫特效”
    图片滚动新闻和新闻的滚动菜单
    简易聊天窗口
  • 原文地址:https://www.cnblogs.com/ninanie/p/7655467.html
Copyright © 2011-2022 走看看