python之路 - 基础3
1.字符串处理
name = "my name is jiachen"
#首字母大写
print (name.capitalize())
#统计字母出现次数
print (name.count('a'))
#居中打印
print (name.center(50,'-'))
#字符串装换成bytes类型
print (name.encode('utf-8'))
#判断以什么结尾
print (name.endswith('en'))
#将tab转多少个空格
print (name.expandtabs())
#查找字符开头索引
print (name.find('y'))
#格式化字符串
#name = "my name is {name} and i am {year} old"
#print (name.format(name='jiachen',year=27))
#print (name.format_map({'name':'jiachen','year':27}))
#是否为数字或字母
print ('abc123'.isalnum())
#是否为字母
print ('Abc'.isalpha())
#是否为十进制
'.isdecimal())
#是否为整数
'.isdigit())
#判断是不是一个合法的表示符(变量名)
print ('a1A'.isidentifier())
#是否为小写
print ('Abc'.islower())
#是否只有数字
'.isnumeric())
#是否为空格
print (' '.isspace())
#是否每个首字母大写
print ('My Name Is'.istitle())
#是否能打印,tty file drive file
print ('My Name Is'.isprintable())
#是否都为大写
print ('My'.isupper())
#拼接字符串
print ('+'.join('abc'))
#长50不够用*号后面补上
print (name.ljust(50,'*'))
#长50不够用*号前面补上
print (name.rjust(50,'*'))
#变小写
print ('Alex'.lower())
#变大写
print ('alex'.upper())
#从左边去掉空格回车
print (' jiachen '.lstrip())
#从右边去掉空格回车
print (' jiachen '.rstrip())
#去掉头尾空格
print (' jiachen '.strip())
#
p = str.maketrans(')
print ('jiachen'.translate(p))
#字符串替换
print ('jaaaiachen'.replace('a','x',1))
#从右侧查找
print ('jiachen'.rfind('e'))
#分割成列表
print ('jiachen'.split('a'))
#匹配换行符,分割成列表
print ('1+2\n+3+4'.splitlines())
#反转大小写
print ('Jiachen'.swapcase())
#变成一个title
print ('jiachen'.title())
#不够50就前面补零
print ('jiachen'.zfill(50))
2.字典操作
info = {
'stu01':'Tom',
'stu02':'Jack',
'stu03':'Ben'
}
#创建
#info['stu04'] = 'petter'
#修改
#info['stu01'] = '汤姆'
#删除
#del info['stu01']
#info.pop('stu02')
#随机删
#info.popitem()
#查询
#print (info['stu01'])
#print ('stu01' in info)
#取字典的value
#print (info.values())
#清空字典
#info.clear()
#复制字典
#info2 = info.copy()
#初始化一个字典
#print (info.fromkeys(['stu04','stu05'],'look'))
#取某个key的值
#print (info.get('stu01'))
#key-value元祖所有添加到列表中
#print (info.items())
#取字典的key
#print (info.keys())
#查找key如果不存在使用默认值
#print (info.setdefault('stu04','Jane'))
#将一个字典添加到另一个字典中
#info2 = {'name':'jiachen'}
#info.update(info2)
#print (info)
3.元祖操作
集合、去重、关系测试
集合是一个无序的,不重复的数据组合
list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) print (list_1,list_2) ''' #求交集 print (list_1.intersection(list_2)) #求并集 print (list_1.union(list_2)) #求差集,1里面有2里面没有 print (list_1.difference(list_2)) #求子集,1是2的子集 print (list_1.issubset(list_2)) #求父集,1是2的父集 print (list_1.issuperset(list_2)) #求对称差集,两个互相没有的,去掉重复的 print (list_1.symmetric_difference(list_2)) #判断是否有交集,有为false,无为true print (list_1.isdisjoint(list_2)) ''' #交集 print (list_1 & list_2) #并集 print (list_1 | list_2) #差集 print (list_1 - list_2) #对称差集 print (list_1 ^ list_2) #添加 list_1.add(999) list_1.update([222,223,224]) #删除 list_1.remove(999) #不存在报错 list_1.discard(888) #不存在不报错 #长度 len(list_1) #测试x是否是a的成员 999 in list_1 #测试x是否不是a的成员 999 not in list_1
4.文件操作
文件操作过程
打开文件获得文件句柄-操作-关闭文件
#文件句柄
#f = open('yesterday','r',encoding='utf-8')
#r模式为读模式
#f = open('yesterday','r',encoding='utf-8')
#w模式为写,创建文件
#f = open('yesterday2','w',encoding='utf-8')
#f.write("我爱北京天安门,\n")
#f.write("天安门上太阳升\n")
#a模式为追加,创建文件
#f = open('yesterday2','a',encoding='utf-8')
#f.write("我爱北京天安门,\n")
#f.write("天安门上太阳升\")
#关闭文件
#f.close()
#读前5行
'''
f = open('yesterday2','r',encoding='utf-8')
for i in range(5):
print (f.readline())
'''
#
'''
f = open('yesterday2','r',encoding='utf-8')
for i in f.readlines():
print (i,)
'''
#high bige
'''
count = 0
f = open('yesterday2','r',encoding='utf-8')
for line in f:
if count == 9:
print ('------我是分割线-------')
count += 1
continue
print (line.strip())
count += 1
'''
#seek和tall用法
'''
f = open('yesterday2','r',encoding='utf-8')
print (f.tell())
print (f.readline().strip())
print (f.readline().strip())
print (f.readline().strip())
print (f.tell())
f.seek(0)
print (f.readline().strip())
'''
#
#f = open('yesterday2','r',encoding='utf-8')
#print (f.encoding)
#强制刷新保存
#f.flush()
#截断
#f = open('yesterday2','r',encoding='utf-8')
#f.truncate(10)
#读写,r+,读和追加
'''
f = open('yesterday2','r+',encoding='utf-8')
print (f.readline())
print (f.readline())
print (f.readline())
f.write('-----diao----\n')
print (f.readline())
'''
#写读,w+,先创建一个文件
'''
f = open('yesterday2','w+',encoding='utf-8')
f.write('-----diao----\n')
f.write('-----diao----\n')
f.write('-----diao----\n')
f.write('-----diao----\n')
print (f.tell())
f.seek(10)
print (f.readline())
f.write('should\n')
'''
#追加读,a+
#读二进制文件
#f = open('yesterday2','rb')
#print (f.readline())
#写二进制文件
#f = open('yesterday2','wb')
#f.write('hello\n'.encode('utf-8'))
#f.close()
#文件修改
f = open('yesterday2','r',encoding='utf-8')
f_new = open('yesterday3','w',encoding='utf-8')
for line in f:
if '肆意的快乐' in line:
line = line.replace('肆意的快乐等我享受','肆意的快乐等贾晨享受')
f_new.write(line)
f.close()
5.打印进度条
import sys,time
for i in range(100):
sys.stdout.write('#')
sys.stdout.flush()
time.sleep(0.5)
6.字符编码与转码
gbk -> decode -> unicode
unicode -> encode -> gbk
utf-8 > decode -> unicode
unicode -> encode -> utf-8
打印默认编码
import sys print (sys.getdefaultencoding())
7.函数介绍-1
三种编程方式:面向对象、面向过程、函数式编程
函数式编程与面向过程编程的区别
#函数
def func1():
'''testing1'''
print ('in the func1')
return 0
#过程
def func2():
'''testing2'''
print ('in the func2')
x = func1()
y = func2()
print ('from func1 return is %s' % x)
print ('from func2 retrun is %s' % y)
函数介绍-2
代码重用
保持一致性
可扩展
import time
def logger():
with open('a.txt','a+') as f:
time_format = '%Y-%m-%d %X'
time_current = time.strftime(time_format)
f.write('%s end action\n' % time_current)
def test1():
'''testing1'''
print ('test1 starting action...')
logger()
def test2():
'''testing2'''
print ('test2 starting action...')
logger()
def test3():
'''testing3'''
print('test3 starting action...')
logger()
test1()
test2()
test3()
8.函数返回值
return用来结束函数,返回值可以赋值给一个变量
没有return,返回None
return一个值,返回一个值
return多个值,返回一个元祖
为什么要有返回值,因为我们需要一个函数执行的结果
def test1():
print ('in the test1')
def test2():
print ('in the test2')
return 0
def test3():
print ('in the test3')
return 1,'hello',[12,3],{1:1,2:2}
x = test1()
y = test2()
z = test3()
print (x)
print (y)
print (z)
9.函数的参数
带参数的函数,x、y形参,xxx、yyy实参
def test(x,y,z=3):
print (x)
print (y)
print (z)
位置参数调用,实参和形参要一一对应
test('xxx','yyy')
关键字参数调用,与形参顺序无关
test(y=2,x=1)
python之路 - 基础3的更多相关文章
- python之路基础篇
基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...
- Python之路-基础数据类型之列表 元组
列表的定义 列表是Python基础数据类型之一,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: lst = [1,2,'你好','num'] 列表的索引和切片 与字符串类似, ...
- 百万年薪python之路 -- 基础数据类型的补充
基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...
- python之路 - 基础1
1.安装windows安装双版本Python2,Python3 下载Python2和Python3https://www.python.org/downloads/ 分别安装两个版本 进入Python ...
- Python之路----------基础 一(数据类型、变量、基本语法、流程控制)
一. 数据类型与变量 1.数据类型 整数 #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数 1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...
- python之路——基础篇(2)模块
模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或 ...
- python之路 - 基础2
1.导入模块 import 模块名 form 模块名 import 模块中的函数 可以将模块放入同级目录中,也可以将模块放入site-packages目录中 import sys print (sys ...
- Python之路-基础数据类型之字符串
字符串类型 字符串是不可变的数据类型 索引(下标) 我们在日常生活中会遇到很多类似的情况,例如吃饭排队叫号,在学校时会有学号,工作时会有工号,这些就是一种能保证唯一准确的手段,在计算机中也是一样,它就 ...
- Python之路-基础数据类型之字典 集合
字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...
- 百万年薪python之路 -- 基础数据类型的补充练习
1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...
随机推荐
- OCP-1Z0-051-题目解析-第9题
9. Which statement is true regarding the INTERSECT operator? A. It ignores NULL values. B. Reversing ...
- leetcode第22题--Merge k Sorted Lists
problem:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its compl ...
- StringTokenizer使用类
StringTokenizer它被用来分离String应用类别.当量VB的split功能. 1.构造函数 public StringTokenizer(String str) public Strin ...
- NYOJ 58 步数最少 【BFS】
意甲冠军:不解释. 策略:如果: 这个问题也可以用深宽搜索搜索中使用.我曾经写过,使用深层搜索.最近的学校范围内的搜索,拿这个问题来试试你的手. 代码: #include<stdio.h> ...
- java 生成easyui 所需要的森林
在项目中,可能会遇到机构树这种格式,但是数据库存储的数据 不能维护这样子的树,所以需要中间转换来完成,zTree可以支持pid,id,name的格式,但是easyui貌似不行,这里就给出刚刚码好的代码 ...
- Node填坑教程——常用库
作为函数式编程来说,流程控制和函数库是必不可少的(应该吧). 下面我们介绍两个常用的库. lodash:完整的api请参阅,https://lodash.com/docs.这里我们只演示几个简单的例子 ...
- .net开发框架设计
转WisDom .net开发框架设计 WisDom .net 框架设计 1. 为啥要弄 2014 年我已经是我们参加工作的第六年,也做过不少项目,但是发现自己没有代码积累.这里利用业余时间梳理一下 ...
- 在Linux使用GCC编译C语言共享库
在Linux使用GCC编译C语言共享库 对任何程序员来说库都是必不可少的.所谓的库是指已经编译好的供你使用的代码.它们常常提供一些通用功能,例如链表和二叉树可以用来保存任何数据,或者是一个特定的功能例 ...
- 大数据工具篇之Hive与MySQL整合完整教程
大数据工具篇之Hive与MySQL整合完整教程 一.引言 Hive元数据存储可以放到RDBMS数据库中,本文以Hive与MySQL数据库的整合为目标,详细说明Hive与MySQL的整合方法. 二.安装 ...
- 从异步更新进度想起的事儿——IProgress
今天,在群里向大家请教了这样一个问题:“两个对象(类.窗体或什么)之间,要完成比较频繁的报告进度更新都有哪些好的方式”,Somebody 跳出来给出了个“IProgress”,没了解过,后面围绕着它讨 ...