一.常用的字符串方法

capitalize() #将字符串首字母大写

center(100,'*') #把字符串居中的

count(‘zhou’)#查询次数

endswith('.jpg ')#判断字符串是否以XXX结尾;返回类型为布尔类型,True 或者False

startswith(‘138’)#判断字符串是否以xxx开头

upper()#都给你变成大写

lower()#都给你变成小写

find(‘a’)#找字符串的下标,找不到不会报错,返回-1

index(‘a’)#找字符串的下标,找不到会报错

isdigit()# 判断是否为纯数字

isspace()#判断是否全是空格

isalnum()#只能有英文或数字

isalpha()只能有英文、汉字

strip()#去掉字符串两边的东西,默认是去掉两边的空格和换行符的

lstrip()#只去掉左边的

rstrip()#只去掉右边的

replace(‘123’,‘456’)#替换字符串,把前面的替换成后面的,第三个参数是替换的处数,默认替换全部

istitle()#标题,首字母为大写即标题

zfill()# 在前面补0

eg:name ='5'

print(name.zfill(2)

结果 05

split(‘,’)#1.分割字符串 2.把字符串变成一个list 3.默认是以空格和换行符分割的

join()#1.把list变成字符串的 2.以某个字符串连接

二、 切片、循环list

1.循环list、循环字符串同

eg:stus = ['abc','tzy','nihao']

for stu in stus:

print(stu)

2.切片,list取值的一种方式

stus = ['abc','tzy','nihao']

stus[1:2]#顾头不顾尾,能取到‘tzy’,取不到‘nihao’

stus[:3]#从头开始可不写

stus[1:]#如果后面的下标不写的话,代表取到结尾

stus[:]#开头的下标和结尾的下标都不写,代表取到整个list

stus[-1]#-1代表最后一个元素

eg:import string

string.digits.split()

结果:['0123456']

nums = list(string.digits)

print(nums)

结果:['0','1','2','3','4','5','6','7','8','9']

print(nums[0:11:2])#第二冒号后面值代表步长,是隔几个元素取一次

结果:['0','2','4','6','8']

print(nums[::-1])#步数是负数从右往左开始取值,反转

print(nums[1:5:-1])

print(nums[-6:-10:-1])

#切片同样适用于字符

3.元组

#元组 list 但它不可变 一旦定义好就不能再变
cities = ('beijing','shanghai')
#元组取值,取下标
print(cities[0])
print(cities.count('beijing'))#数出现的次数
print(cities.index('beijing'))#取下标
#字符串定义好后,也不能修改,只能重定义

eg:s='abcEFGabc'

s = s.replace('abc','')

print(s)

结果:EFG

三、list循环删元素、变量存储方式

eg:
a=[1,1,2,3,4,5,6,72]
b=[1,1,2,3,4,5,6,72]
#  0 1 2 3 4 5 6 7
[1,2,3,4,5,6,72]
for i in b:#i是list里的元素
if i%2!=0:
a.remove(i)
print(a)

结果:[1,2,4,6,72]

原因:下标错乱

解决办法:再定义一个一模一样的list,循环一个list,删另一个list

b=a[:]

print(id(a)# 打印a的内存地址

a=b=c=d=0

e,f,g=1,2,3

a,b=1,2 #交换a、b的值

b,a=a,b#python中可以直接交换,自动引入了第三方变量

四、字典

1.非空即真,非0即真

eg:

a1=1

b1=2

print(a1==b1)

结果:False

a=[]

b=''

c=()

d=0

e=None

if a: #如果a有值

print('是真的')

else:

print('是假的')

结果:是假的

import this #python的话

#not的意思是取反

m=‘好’

print(not m)

结果:False

2.字典

# k - v

d = {}

zjr={‘name‘’:‘zhoujirong’,

‘age‘:‘18’,

‘sex’:‘女’,

‘qq’:‘13242452’}

#字典的k唯一,相同k会取最后一个

#字典是无序的

#增加

zjr['身高’]=’165'

#修改

zjr['age']=35#有的话就改,无的话加

zjr.setdefault('age',50)#如果key已经存在,就不会修改,若不存在,加

#删除

zjr.pop('qq')#指定key删掉,key不存在会报错

del zjr['age']#del删除,key不存在会报错

zjr.clear()#清空字典

zjr.popitem()#随机删除一个key

#取值

zjr['name']#不存在会报错

zjr.get('email','11111@qq.com')#key不存在返回None,第二个参数是若值为空取默认

‘age’ in data:  #判断data字典里是否有‘age’这个key

tzy={'name1':'pig','age':20}
zjr.update(tzy)#把一个字典加入另一个字典里面
print(zjr.values())
print(zjr.keys()) for i in zjr:
print(i)#循环打印的是字典的key
for k,v in zjr.items():
print(k,v) #能同时取到key和value
print(zjr)

高效循环字典的方式

d = {'a':1,'b':2}
print(d.items())
for k,v in d.items():
print(k,v)
for k in d:
print(k,d.get(k))
#记录学生是否交作业的小程序
#学生名字 日期 状态
data ={
'zjr':{
'2018-6-3':'未交'
},
'pig':{
'2018-6-7':'已交'
}
} for i in range(2): name =input('name:').strip()
date = input('date:').strip()
status = input('status'.strip())#可以不写,如果不写的话,是未交
if name and date:# 判空,如果name和date都不为空,状态为空时默认为未交
status = '已交' if status else '未交'#三元表达式
if name in data:
data[name][date]=status
else:
tmp = {date:status}#{'2018-2-3':'未交'},#data[name]= {date:status}先构造一个小字典
data[name]=tmp#再给外面这个大字典加一个学生 value这个小字典
print('添加之后的',data) else:
print('姓名和日期不能为空!')

#注意:

status = '已交' if status else '未交' #三元表达式
#上面的一行和下面的四行是一样的
if status:
status = '已交'
else:
status = '未交'

五、文件读写

1.打开文件
#2.对他读或写
#3.关闭文件 #open() file()
#1.有没有清空内容
#2.能不能读到东西
#3.文件不存在会不会报错
f = open(r'C:\Users\Mezhou\PycharmProjects\untitled\zjr','a+',encoding='utf-8') #写路径之前加r,当前目录直接写文件名
# print(f.read())
#文件指针
# print('readline',f.readline())#读取文件一行的数据 # names = ['abc','zjr','tzy','hdhsh']
# for name in names:
# f.write(name+'\n')
# f.writelines(names)#传一个list,然后把list里面的每一个元素写入到文件中
f.seek(0)
print('readlines',f.readlines())#获取文件里面的所有内容,每一行的数据放到一个list里面
# print('read',f.read())#获取文件里的所有内容
#f.write('789') # f.seek(0)#移动文件指针到最前面
# print('read',f.read())
# f.close() #只读模式 r 读写模式 r+
#只能读 文件不存在会报错 可读可写,打开不存在的时候也会报错 #写模式 w
#会覆盖以前文件里的内容,不能读 文件不存在的话,会帮你创建一个
#写读模式 w+ 会清空以前的数据
#只要粘上r,文件不存在就会报错
#只要粘上w,文件内容肯定会被清空 #追加模式 a+
#能读、能写、不会清空以前的内容,文件不存在会创建 # print(f.read())
# names =['a','a1','g3']
# for i in names:
# f.write(names+'\n')

Python 第三天学习整理2的更多相关文章

  1. Python 第三天学习整理①

    今天学习的内容包括以下几个方面:1.字符编码 2.文件操作 3.函数 1.字符编码 关于字符编码,关注以下几个点 1.1 什么是字符编码 字符编码:字符转化为数字的过程所遵循的标准 字符编码包括:un ...

  2. python +ps 三方面库整理

    -------------------------------------------端口进程相关------------------------------------------------cp ...

  3. 系统学习python第三天学习笔记

    day02补充 运算符补充 in value = "我是中国人" # 判断'中国'是否在value所代指的字符串中. "中国"是否是value所代指的字符串的子 ...

  4. !!对python列表学习整理列表及数组详细介绍

    1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...

  5. 孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习

     孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.close() 当一个file对象执行此方法时,将关闭当前 ...

  6. 大牛整理最全Python零基础入门学习资料

    大牛整理最全Python零基础入门学习资料 发布时间:『 2017-11-12 11:56 』     帖子类别:『人工智能』  阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料 ...

  7. Python第一周基本语句学习整理

    目录 Python第一周基本语句学习整理 一.字符串切割 二.体重单位转换 三.计算器的实现 四.猜年龄游戏 Python第一周基本语句学习整理 一.字符串切割 代码实现: s = 'luowenxi ...

  8. 学习Python的三种境界

    前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人 ...

  9. mac学习Python第一天:安装、软件说明、运行python的三种方法

    一.Python安装 从Python官网下载Python 3.x的安装程序,下载后双击运行并安装即可: Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. MAC 系统一般 ...

随机推荐

  1. shell 函数传递参数的几种方式

    1.最近总结了 shell 中 function 的传递变量的几种方式 1.传递单个变量 2.传递数组变量   #!/bin/bash   #trying to pass an variable.   ...

  2. 异常 Cannot resolve class or package

    spring boot yml配置异常Cannot resolve class or package 是因为mvaen设置 pom.xml的文件配置如上,scope 范围指定为runtime,runt ...

  3. 如何防御DNS陷阱?黑客常用3种DNS欺骗手法

    DNS如何被利用?那么这个系统如何让用户变得脆弱?通常解析器会告诉每个DNS服务器你正在寻找哪个域名.此请求有时会包含您的完整IP地址.或者,如果不是您的完整IP地址,请求中通常会包含您的大部分IP地 ...

  4. 苹果正制造一款疯狂的“16K”VR耳机,效果到底有多牛?

    苹果一直以来都有传闻称正在研发一副增强现实眼镜,但今天的一份报告显示,他们希望在虚拟现实领域与Google,微软和Facebook竞争. 据CNET报道,苹果公司着眼于2020年发布的将AR和VR技术 ...

  5. Java使用文件通道复制文件

    两种文件通道复制文件方式的性能比较 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IO ...

  6. c++ ofstream使用方法

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,流缓冲即是内存空间. 插入器<<  : 向流输出数据. cout << "test!" &l ...

  7. SDK与API的理解

    1.SDK SDK (Software Development Kit):软件开发工具包,一般都是软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. SDK (S ...

  8. PHP curl_exec函数

    curl_exec — 执行一个cURL会话 说明 mixed curl_exec ( resource $ch ) 执行给定的cURL会话. 这个函数应该在初始化一个cURL会话并且全部的选项都被设 ...

  9. 4412 Linux设备总线

    总线_设备_驱动注册流程详解 注册流程图 • 设备一般都需要先注册,才能注册驱动– 现在越来越多的热拔插设备,反过来了.先注册驱动,设备来了再注册 设备 • 本节使用的命令– 查看总线的命令#ls / ...

  10. 自定义combiner实现文件倒排索引

    package com.zuoyan.hadoop; import java.io.IOException; import org.apache.hadoop.conf.Configuration; ...