1、list操作
stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] #数组、list、array
#增加
stus.append('原宝')#在list末尾增加一个元素
stus.insert(3,'马冬')#在指定位置添加元素
stus.insert(1000,'田里')#如果你指定的下标不存在,那么就是在末尾
print(stus)
#改
stus[0]='原宝'
print(stus) #查看
print(stus)
print(stus[-1])
print(stus.count('hhaha')) #查看某个元素在这个里面的个数,如果该元素不存在,那么返回0
print(stus.index('sdfsdfs')) #
找到这个元素的下标,如果有多个,返回第一个,如果找一个不存在的元素,会报错
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) #多维数组 二维数组
三维数组
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、list循环和切片
for name in names:  print(name)
#如果直接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]) #切片同样适用于字符串,字符串也有下标
title='今 天 发 苹 果 '
print(title[:4])
for i,t in enumerate(nums): #enumerate可以同时循环下标和值
print(i,t) #就是list取值的一种方式
print(nums[2:4])
print(nums[:6])#如果切片前面一个值不写的话,从开头取
print(nums[3:])##如果切片后面的值不写的话,取到末尾
print(nums[:])#如果前面的值和后面的值都不写的话,那么全取过来 #切片是顾头不顾尾
#注册,死循环
# username,paswd
nams = ['haha']
if 'haha' in nams:
print('hhaha') usernames = [] #所有的用户名
while True:
username= input('用户名:')
passwd = input('密码:')
if usernames.count(username) == 0: #判断找到的个数是否为0,为0的话,代表这个用户没有被注册过
print('注册成功!')
usernames.append(username)
else:
print('用户已经被注册') 3、 非空即真 非0即真
 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('错误失败次数太多!') 4、字典操作# stus = [ ['原宝',30,'nan','xxx','20k','x'], ['原宝',30,'nan','xxx','20k','x','xx','xx'],
 ['原宝',30,'nan','xxx','20k','x'],
['原宝',30,'nan','xxx','20k','x'],
] # k=v
#取值方便、速度快
#查
d = { 'name':'原宝',
'age':18,
'sex':'男',
'addr':'昌平区',
'money':10000000 ,
'xx':'xxx'
} print(d['haha'])#如果写了不存在的key,会报错
print(d.get('SDFSDF'))#如果get不到的话,返回None
#增加
d['shengao']=198
d.setdefault('weight',130)
#字典是无序的 #修改字典的
d['shengao']=200 #如果这个key存在的话,修改他的值,如果key不存在的话,新增一个 #删除
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())#是吧字典的k和v转成一个二维数组
for k,v in d.items():#
print(k,v)
int()#int类型
str()#抓成字符
list()#转成list res = list(d.items())
print(res[0]) for k in d: #性能好
print(k,d.get(k))
5、字典嵌套
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
}
},
} 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)
6、元组
# 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、字符串方法
#可变变量  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) #在循环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')#字符串替换,第一个old,new
print(new_sql) print('122s'.isdigit())#是否是数字
print('&'.isalnum()) # 是否包含数字或字母
st = 'a b c d f g'
st_list = st.split()#如果什么都不写的话,是按照空格分割
print(st_list) 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) if 'name' not in d:
pass #可以遗忘的
new_name = name.capitalize()#首字母大写
name.center(50,'*') #把字符串放中间,两边用*补齐
print('aaAA'.islower()) # 是否是小写字母
print('AAaa'.isupper()) # 是否是大写字母
print('sdfsdf'.isalpha()) # 是否是英文字母
8、注册登录
#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('账号/密码/确认密码不能为空') #登录程序
# 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('账号/密码不能为空')
9、文件读写
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() #文件打开有3种方式
# 读 r #如果打开的文件的时候没有指定模式,那么默认是读
# 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错
# 写 w #w模式会清空原有文件内容
# 写读模式 w+
#只要沾上w,他就会把文件内容清空
追加 a
追加读写
f = open('a.txt', 'w') for i in range(3):
f.write(xx+'\n')
10、高效处理文件的方法
fw  = open('ybq.txt',encoding='utf-8')
# count = 1
#直接循环文件对象的话,就是循环文件里面的每一行 for f in fw:
f = f.strip()
stu_lst = f.split(',')
print(stu_lst)
print(stu_lst[0])


 

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. IntelliJ Idea 第一次使用

    概括 程序员每次电脑重新安装或者新的电脑上进行开发时都会安装一些开发软件,这时候基本都是去官网下载,然后破解(中国程序员啊哈哈)进行快乐使用,为了让自己方便小编也写一个,不用去别人那里找来找去 安装I ...

  2. 20175214 《Java程序设计》第8周学习总结

    20175214 <Java程序设计>第4周学习总结 前言:由于个人原因回家了两周,java学习进程落下了两周,且目前需交的实验报告较多,暂时无法补上前两次的博客,在将来会陆续补上,这次直 ...

  3. Mybatis 笔记

    环境:Mybatis 3 +MariaDB 10.1 似乎在调用存储过程时 ,参数只能写在一行上. 否则会返回语法错误.

  4. 【原创】大数据基础之Kudu(3)primary key

    关于kudu的primary key The primary key may not be changed after the table is created. You must drop and ...

  5. 【Git】Git提交代码的正确姿势

    按此步骤基本没问题,中间有conflict,需要手动解决. 1.git stash 2.git pull 3.git stash pop 4.git add --xxx 5.git commit -m ...

  6. adi i2s 提供的axi_lite接口说明

    总共定义了4个寄存器,位宽32位,也就是 偏移地址*4以下是PS写数据when 0 => I2S_RESET_REG <= wr_data; when 1 => I2S_CONTRO ...

  7. java项目----衣服购买

    执行bat文件:注意t_temp.properties保存的文件是否为utf8编码native2ascii -encoding UTF-8 t_temp.properties r.properties ...

  8. Hadoop之Flume 记录

    出现这个错误是自己的粗心大意,解决: 在配置flume-conf.properties文件时,source和channel的对应关系是: myAgentName.sources.mySourceNam ...

  9. SpringBoot 整合 Redis缓存

    在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求. Spr ...

  10. JVM内存结构--新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数

    一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...