day03笔记
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笔记的更多相关文章
- python day03笔记总结
2019.3.29 S21 day03笔记总结 昨日回顾及补充 1.运算符补充 in not in 2.优先级 运算符与运算符之间也有优先级之分 今日内容 一.整型(int) py2 与 py3 的区 ...
- Spring day03笔记
spring day02回顾 AOP :切面编程 切面:切入点 和 通知 结合 spring aop 编程 <aop:config> 方法1: <aop:pointcut expre ...
- Hibernate day03笔记
Hibernate的关联关系映射:(多对多) 多对多的配置: 步骤一创建实体和映射: Student: public class Student { private Integer sid ...
- 第三月 day03.笔记
函数在调用的时候回形成一个私有作用域,内部变量不会被外面访问,这种保护机制叫做闭包,这就意味着函数调用完了,这个函数形成的栈内存就会被销毁,但有时候我们不希望被销毁. * 函数归属谁和他的调用没有关系 ...
- Shell:Day03笔记
编程原理:1.编程结束 驱动 硬件默认是不能使用的 CPU控制硬件 不同的厂家硬件设备之间需要进行指令沟通,就需要驱动程序来进行“翻译” 编程语言的分类: 高级语言.超高级语言需要翻 ...
- tedu训练营day02
1.Linux命令 1.关机.重启 关机 :init 0 重启 :init 6 2.rm 1.rm -rf 文件/目录 r :递归删除文件夹内的子文件夹 f :强制删除,force 2.练习 1.在用 ...
- 05-STL
Day01 笔记 1 STL概论 1.1 STL六大组件 1.1.1 容器.算法.迭代器.仿函数.适配器.空间配置器 1.2 STL优点 1.2.1 内建在C++编译器中,不需要安装额外内容 1.2. ...
- 04C++核心编程
Day01 笔记 1 C++概述 1.1 C++两大编程思想 1.1.1 面向对象 1.1.2 泛型编程 1.2 移植性和标准 1.2.1 ANSI 在1998制定出C++第一套标准 2 c++初识 ...
- 02-C高级编程
Day01 笔记 1 typedef使用 1.1 起别名 - 简化struct关键字 1.2 区分数据类型 1.3 提高代码移植性 2 void使用 2.1 不可以利用void创建变量 无法给无类型变 ...
随机推荐
- mac 终端里进入mysql和退出
先在偏好设置里启动mysql服务 获取超级权限 在终端输入代码 sudo su 输入完后获取超级权限 终端显示 sh-3.2# 输入本机密码(Apple ID密码) 接着通过绝对路径登陆 代码 /us ...
- js变量传递
基本类型.引用类型 基本类型: undefined.Null.Boolean.Number.String五种 (简单的数据段);引用类型: object (由多个值构成). 两种类型在使用上的区别: ...
- thymleaf th:if判断某值不为空
简单描述:判断后台传递过来的值,是否为空,来做一些业务上的处理. 代码: <div class="col-md-6" th:if="${not #strings.i ...
- JS监听浏览器的返回、后退、上一页按钮的事件方法
在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的需求,那在代码中怎样监听当点击微信.支付宝.百度糯米.百度钱包等 ...
- 单点登录前戏(未使用jwt版本)
建表 from django.db import models import jwt # Create your models here. # 角色表 class RoleTable(models.M ...
- 【webpack系列】从零搭建 webpack4+react 脚手架(二)
html文件如何也同步到dist目录?bundle.js文件修改了,万一被浏览器缓存了怎么办?如何为导出的文件加md5?如何把js引用自动添加到html?非业务代码和业务代码如何分开打包?如何搭建开发 ...
- Hbase API 简单封装
>>>>>>>>>>>>>>>>>>>>>>>>> ...
- Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站
前言 本文介绍如何在 Ubuntu 16.04 服务器上安装 .NET Core 2.0 SDK.创建项目与发布,并使用 Nginx 部署 .NET Core 2.0 Web 项目. 安装 .NET ...
- net core体系-Standard-1概述
前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时会趋于成熟,所以一个新的.Net开发时代已经来临!未来属于.NET Core. . ...
- haproxy4-acl配置
访问控制设定: 匹配后可进行那些操作: Use _backend : 当符合条件时使用特定的backend后端, Use_backend <backend> [{if | unles ...