1. 1list操作
    stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] #数组、list、array
    #增加
    stus.append('原宝')#在list末尾增加一个元素
    stus.insert(3,'马冬')#在指定位置添加元素
    stus.insert(1000,'田里')#如果你指定的下标不存在,那么就是在末尾
    print(stus)
  1. #改
    stus[0]='原宝'
    print(stus)
  2. #查看
    print(stus)
    print(stus[-1])
    print(stus.count('hhaha')) #查看某个元素在这个里面的个数,如果该元素不存在,那么返回0
    print(stus.index('sdfsdfs')) #
    找到这个元素的下标,如果有多个,返回第一个,如果找一个不存在的元素,会报错
  1. stus = ['xiaohei','xiaobai','xiaohuang','cxdser','xiaohei']
    #删元素
    stus.pop()#默认删除最后一个元素,如果指定下标,那么删除指定的元素
    stus.remove('xiaohei')#删除list里面的一个元素
    del stus[0]
    stus.clear()#清空整个list
    print(stus)
    stus.reverse()#反转list
    nums = [9,31,345,12,457,2352,12143,2321]
    nums.sort(reverse=True)
    排序,默认排序是升序,如果指定了reverse=True就是按照降序拍
    print(nums)
  2. #多维数组 二维数组
  1. 三维数组
  1. all_nums = [ 123, 456, [789,10,11] ]
    three = [ 123, 456, [789,10,11, ['hahaha','1234'] ]]
    a = [1,2,3]
    b = [4,5,6]
    a.extend(b)#合并两个list
    print(a)
    print(b)
    # print(all_nums[2][1])
  2. 2list循环和切片
  1. for name in names: print(name)
  1. #如果直接for循环一个list的时候,
    #那么每次循环的值都是这个list里面的元素
    names = ['haha','hehe','heihei']
    #切片
    nums = [1,2,3,4,5,6,7,8,9,10]
    print(nums[-1:-8:-1])#步长
    #步长是正数的话从左往右取
    #步长是负数的话从右往左取
    print('没有:1',nums[:6])
  2. #切片同样适用于字符串,字符串也有下标
    title='今 天 发 苹 果 '
    print(title[:4])
    for i,t in enumerate(nums): #enumerate可以同时循环下标和值
    print(i,t)
  3. #就是list取值的一种方式
    print(nums[2:4])
    print(nums[:6])#如果切片前面一个值不写的话,从开头取
    print(nums[3:])##如果切片后面的值不写的话,取到末尾
    print(nums[:])#如果前面的值和后面的值都不写的话,那么全取过来
  4. #切片是顾头不顾尾
    #注册,死循环
    # username,paswd
    nams = ['haha']
    if 'haha' in nams:
    print('hhaha')
  5. usernames = [] #所有的用户名
    while True:
    username= input('用户名:')
    passwd = input('密码:')
    if usernames.count(username) == 0: #判断找到的个数是否为0,为0的话,代表这个用户没有被注册过
    print('注册成功!')
    usernames.append(username)
    else:
    print('用户已经被注册')
  6. 3 非空即真 0即真
  1. if a==b:
    print('xxx')
    #3次
    #不能为空
    # 什么也不输入
    for i in range(3):
    username = input('username:').strip()
    passwd = input('passwd:').strip()
    if username and passwd:
    if username=='nhy' and passwd=='123456':
    print('%s欢迎登录'%username)
    break
    else:
    print('账号/密码错误!')
    else:
    print('账号/密码不能为空')
    else:
    print('错误失败次数太多!')
  2.  
  3. 4、字典操作# stus = [ ['原宝',30,'nan','xxx','20k','x'], ['原宝',30,'nan','xxx','20k','x','xx','xx'],
  1. ['原宝',30,'nan','xxx','20k','x'],
    ['原宝',30,'nan','xxx','20k','x'],
    ]
  2. # k=v
    #取值方便、速度快
    #查
    d = { 'name':'原宝',
    'age':18,
    'sex':'男',
    'addr':'昌平区',
    'money':10000000 ,
    'xx':'xxx'
    }
  3. print(d['haha'])#如果写了不存在的key,会报错
    print(d.get('SDFSDF'))#如果get不到的话,返回None
    #增加
    d['shengao']=198
    d.setdefault('weight',130)
    #字典是无序的
  4. #修改字典的
    d['shengao']=200 #如果这个key存在的话,修改他的值,如果key不存在的话,新增一个
  5. #删除
    d.pop('shengao')#删除某个key
    d.popitem()#随机删除一个
    del d['shengao']
    d.clear()#清空字典
    print(d.keys())#获取到字典所有的key
    print(d.values())#获取到所有的values
    d.has_key('addr') #python2里面字典有这个方法,有没有这个key
    if 'addr' in d :#判断key是否在这个字典里头
    print('addr')
    print(d.items())#是吧字典的kv转成一个二维数组
    for k,v in d.items():#
    print(k,v)
    int()#int类型
    str()#抓成字符
    list()#转成list
  6. res = list(d.items())
    print(res[0])
  7. for k in d: #性能好
    print(k,d.get(k))
  1. 5、字典嵌套
  1. stus = {
    'ybq': {
    'age': 18,
    'sex': '男',
    'addr': '昌平区',
    'money': 10000000,
    'jinku': {
    '建行卡': 80000,
    '工商卡': 800000,
    '招商卡': 8000000
    }
    },
    'tlx': {
    'age': 19,
    'sex': '女',
    'addr': '昌平区',
    'money': 10000000,
    'huazhuangpin': ['chanle','haha']
    },
    'mpp': {
    'age': 19,
    'sex': '女',
    'addr': '昌平区',
    'money': 10000000,
    "bag": {
    'lv': '一车',
    '鳄鱼':10
    }
    },
    }
  2.  
  3. all_money = stus['ybq']['jinku'].values()
    print(all_money)
    print(sum(all_money))
    sum_money = 0
    for money in all_money:
    sum_money= sum_money+money
    print(sum_money)
  1. 6、元组
  1. # mysql1 = ('127.0.0.1',3306,'my','root','123456')
    # mysql2 = ('127.0.0.1',3307,'my','root','123456')
    # print(mysql1.count('my'))#找个数
    # print(mysql1.index('my'))#返回下标
    #元组也是list,只不过是不可变的    
    7、字符串方法
  1. #可变变量 list、字典
    #不可变变量 元组、字符串
    #
    li = [1,1,2,3,4,5,6,7,8,9]
    li2 = li[:] #深拷贝
    li2 = li #浅拷贝
    print('这里li的内存地址',id(li))
    print('这里是li2的内存地址',id(li2))
    #
    for i in li2:
    if i%2!=0:
    li.remove(i)
    print(li)
  2.  
  3. #在循环list的时候不能删东西
    #字符串这些方法都不会改变原来字符串的值
    name = 'besttest'
    new_name = name.strip() #默认是去掉两边的空格和换行符
    new_name= name.lstrip() #默认是去掉左边的空格和换行符
    new_name= name.rstrip()#默认是去掉右边边的空格和换行符
    new_name = name.count('t')#查找某个字符串在字符串里面出现的次数
    index = name.find('d')#找到这个字符串,返回它的下标,如果不存在的话,返回-1
    index = name.index('d')#找到这个字符串,返回它的下标,如果不存在的话,报错
    print(name.upper())#把所有字母都变成大写的
    print(name.lower())#把所有字母都变成小写的
    file_name = 'a.xls'
    print(file_name.endswith('.xls'))#判断一个字符串是否以xx结尾
    sql = 'select * from user; select'
    sql.startswith('select')#判断一个字符串是否以xx开头
    f = '{name} 欢迎光临 age :{age} '
    print(f.format(name='原宝青'))#字符串格式化
    d = {'name':'yuanbaoqiang','age':18}
    print(f.format_map(d))#字符串格式化,它传进去的是一个字典
    new_sql = sql.replace('select','update')#字符串替换,第一个oldnew
    print(new_sql)
  4.  
  5. print('122s'.isdigit())#是否是数字
    print('&'.isalnum()) # 是否包含数字或字母
    st = 'a b c d f g'
    st_list = st.split()#如果什么都不写的话,是按照空格分割
    print(st_list)
  6.  
  7. slit = ['a', 'b', 'c', 'd', 'f', 'g']
    s2='hhhhhhhhhh'
    tu = (1,2,3,4,5)
    d={'name':'nnn','age':18,'sex':1}
    res = '*'.join(d)
    print(res)
  8.  
  9. if 'name' not in d:
    pass
  10.  
  11. #可以遗忘的
    new_name = name.capitalize()#首字母大写
    name.center(50,'*') #把字符串放中间,两边用*补齐
    print('aaAA'.islower()) # 是否是小写字母
    print('AAaa'.isupper()) # 是否是大写字母
    print('sdfsdf'.isalpha()) # 是否是英文字母
  1. 8、注册登录
  1. #1、账号/密码/密码确认
    #2、非空
    #3、已经存在的不能注册
    all_user = {'niuhanyang':'123456','tlx':'123456'}
    while True:
    username = input('username:').strip()
    pwd = input('pwd:').strip()
    cpwd = input('cpwd:').strip()
    if username and pwd and cpwd:
    if username in all_user:
    print('用户名已经存在,请重新输入')
    else:
    if pwd==cpwd:
    all_user[username]=pwd
    print('注册成功!')
    break
    else:
    print('两次输入的密码不一致')
    else:
    print('账号/密码/确认密码不能为空')
  2.  
  3. #登录程序
    # 1、非空
    # 2、如果输入的用户名不存在,要提示
    #3、输入账号密码
    while True:
    username = input('username:').strip()
    pwd = input('pwd:').strip()
    if username and pwd:
    if username in all_user:
    src_pwd = all_user[username]
    if src_pwd == pwd:
    print('欢迎登录')
    break
    else:
    print('密码输入错误!')
    else:
    print('输入的用户不存在')
    else:
    print('账号/密码不能为空')
  1. 9、文件读写
  1. f = open('ybq.txt','a+',encoding='utf-8')
    f.seek(0)#seek移动指针的时候,只对读好使,对写不好使
    f.truncate()#清空文件内容
    print(f.read())#读取文件里面的全部内容
    print(f.tell())#查看当前文件指针的位置
    print(f.readline())#只读取一行的内容
    print(f.readlines())#读取文件里面所有的内容,把文件里面每一行的内容放到一个list里面
    f.write('yzf'+'\n')
    print(f.read())
    names = ['bq','yzf','lx','ly','jy']
    st = 'ybq,mpp,tlx'
    tu=('sdf','sdfs','sdfsd')
    d={'name1':'xx1'}
    f.write(names)
    f.writelines(d['name1']) #写的时候,传入一个可迭代的对象
    f.close()
    # #文件指针
    #file() #python2里面
    #open()
  2.  
  3. #文件打开有3种方式
    # 读 r #如果打开的文件的时候没有指定模式,那么默认是读
    # 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错
    # 写 w #w模式会清空原有文件内容
    # 写读模式 w+
    #只要沾上w,他就会把文件内容清空
    追加 a
    追加读写
    f = open('a.txt', 'w')
  4.  
  5. for i in range(3):
    f.write(xx+'\n')
    10、高效处理文件的方法
  1. fw = open('ybq.txt',encoding='utf-8')
    # count = 1
    #直接循环文件对象的话,就是循环文件里面的每一行
  2.  
  3. for f in fw:
    f = f.strip()
    stu_lst = f.split(',')
    print(stu_lst)
    print(stu_lst[0])
  1.  

day03笔记的更多相关文章

  1. python day03笔记总结

    2019.3.29 S21 day03笔记总结 昨日回顾及补充 1.运算符补充 in not in 2.优先级 运算符与运算符之间也有优先级之分 今日内容 一.整型(int) py2 与 py3 的区 ...

  2. Spring day03笔记

    spring day02回顾 AOP :切面编程 切面:切入点 和 通知 结合 spring aop 编程 <aop:config> 方法1: <aop:pointcut expre ...

  3. Hibernate day03笔记

      Hibernate的关联关系映射:(多对多) 多对多的配置: 步骤一创建实体和映射: Student: public class Student {     private Integer sid ...

  4. 第三月 day03.笔记

    函数在调用的时候回形成一个私有作用域,内部变量不会被外面访问,这种保护机制叫做闭包,这就意味着函数调用完了,这个函数形成的栈内存就会被销毁,但有时候我们不希望被销毁. * 函数归属谁和他的调用没有关系 ...

  5. Shell:Day03笔记

    编程原理:1.编程结束  驱动 硬件默认是不能使用的   CPU控制硬件   不同的厂家硬件设备之间需要进行指令沟通,就需要驱动程序来进行“翻译”    编程语言的分类:  高级语言.超高级语言需要翻 ...

  6. tedu训练营day02

    1.Linux命令 1.关机.重启 关机 :init 0 重启 :init 6 2.rm 1.rm -rf 文件/目录 r :递归删除文件夹内的子文件夹 f :强制删除,force 2.练习 1.在用 ...

  7. 05-STL

    Day01 笔记 1 STL概论 1.1 STL六大组件 1.1.1 容器.算法.迭代器.仿函数.适配器.空间配置器 1.2 STL优点 1.2.1 内建在C++编译器中,不需要安装额外内容 1.2. ...

  8. 04C++核心编程

    Day01 笔记 1 C++概述 1.1 C++两大编程思想 1.1.1 面向对象 1.1.2 泛型编程 1.2 移植性和标准 1.2.1 ANSI 在1998制定出C++第一套标准 2 c++初识 ...

  9. 02-C高级编程

    Day01 笔记 1 typedef使用 1.1 起别名 - 简化struct关键字 1.2 区分数据类型 1.3 提高代码移植性 2 void使用 2.1 不可以利用void创建变量 无法给无类型变 ...

随机推荐

  1. python封装configparser模块获取conf.ini值

    configparser模块是python自带的从文件中获取固定格式参数的模块,因为是python只带的,大家用的应该很多,我觉得这个参数模块比较灵活,添加参数.修改参数.读取参数等都有对应的参数供用 ...

  2. VGA、DVI、HDMI三种视频信号接口

    目前,电脑显示器常见的接口主要有HDMI.DP.DVI.VGA等4种接口.显示器数据线性能排名:DP>HDMI>DVI>VGA.其中 
VGA是模拟信号,已经被主流所淘汰,DVI.H ...

  3. Centos系统FastDFS搭建与排错

    FastDFS中Tracker server主要是负载均衡和调度,Storage server主要是文件存储. 1.1 系统环境 [root@ centos fastdfs]# cat /etc/re ...

  4. PHP提取页面第一张图为缩略图的代码

    <?php $p = '/<img.*?src=[\'|\"](.+?)[\'|\"].*?>/i'; preg_match_all($p,$str,$match ...

  5. OpenStack基础组件安装keystone身份认证服务

    域名解析 vim /etc/hosts 192.168.245.172 controller01 192.168.245.171 controller02 192.168.245.173 contro ...

  6. Django组件-cookie与session

    一.会话跟踪技术 1.什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而 ...

  7. 怎么在PDF上进行文字修改

    文件相信大家不论是工作中还是在学习生活中都会有遇到,有时候我们会遇到PDF文件中的文字有时候会有错误的时候,这个时候就需要对修改PDF文件上的文字,那么具体要怎么做呢,PDF文件需要借助软件才可以编辑 ...

  8. arm寄存器

    ARM 处理器拥有 37 个寄存器. 这些寄存器按部分重叠组方式加以排列. 每个处理器模式都有一个不同的寄存器组. 编组的寄存器为处理处理器异常和特权操作提供了快速的上下文切换. 提供了下列寄存器:三 ...

  9. poj 1741

    点分治入门题 首先发现是树上点对的问题,那么首先想到上点分治 然后发现题目要求是求出树上点对之间距离小于等于k的对数,那么我们很自然地进行分类: 对于一棵有根树,树上的路径只有两种:一种经过根节点,另 ...

  10. MIUI9系统怎么卡刷开发版获取ROOT超级权限

    小米的设备不同手机型号一般情况下官方网站都提供两个不同的系统版本,大概可分为稳定版和开发版,稳定版没有提供ROOT权限管理,开发版中就支持了ROOT权限,很多情况下我们需要使用的一些功能强大的工具,都 ...