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的更多相关文章

  1. python之路基础篇

    基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...

  2. Python之路-基础数据类型之列表 元组

    列表的定义 列表是Python基础数据类型之一,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: lst = [1,2,'你好','num'] 列表的索引和切片 与字符串类似, ...

  3. 百万年薪python之路 -- 基础数据类型的补充

    基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...

  4. python之路 - 基础1

    1.安装windows安装双版本Python2,Python3 下载Python2和Python3https://www.python.org/downloads/ 分别安装两个版本 进入Python ...

  5. Python之路----------基础 一(数据类型、变量、基本语法、流程控制)

    一. 数据类型与变量 1.数据类型 整数   #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数  1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...

  6. python之路——基础篇(2)模块

    模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或 ...

  7. python之路 - 基础2

    1.导入模块 import 模块名 form 模块名 import 模块中的函数 可以将模块放入同级目录中,也可以将模块放入site-packages目录中 import sys print (sys ...

  8. Python之路-基础数据类型之字符串

    字符串类型 字符串是不可变的数据类型 索引(下标) 我们在日常生活中会遇到很多类似的情况,例如吃饭排队叫号,在学校时会有学号,工作时会有工号,这些就是一种能保证唯一准确的手段,在计算机中也是一样,它就 ...

  9. Python之路-基础数据类型之字典 集合

    字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...

  10. 百万年薪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 ...

随机推荐

  1. 智能的API、云服务和SOA测试解决方案——Parasoft SOAtest

    依赖Parasoft测试解决方案的机构,不仅有小企业,政府机构,还有世界500强集团.Parasoft公司推出的Parasoft SOAtest,提供了API.云服务和SOA最全面的测试解决方案.此次 ...

  2. 【转】在PC上测试移动端网站和模拟手机浏览器的5大方法

    查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模 ...

  3. 手机新闻网站,掌上移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发

    我们坐在地铁,经常来查看新浪手机新闻,腾讯新闻.或者刷微信看新闻更多功能.你有没有想过如何实现这些目标.移动互联网,更活泼. 因为HTML5到,jQuery Moblie到.今天我用jqm为了给你一个 ...

  4. DDD 应对具体业务场景,Domain Model 重新设计

    DDD 应对具体业务场景,Domain Model 重新设计 写在前面 上联:no zuo no die why you try 下联:no try no high give me five 横批: ...

  5. [转]Android与电脑局域网共享之:Samba Server

    大家都有这样的经历,通过我的电脑或网上邻居访问另一台计算机上的共享资源,虽然电脑和手机之间可以有多种数据传输方式,但通过Windows SMB方式进行共享估计使用的人并不是太多,下面我就简单介绍一下, ...

  6. 数据结构队列的java实现,包括线性和链式两种方式

    实现的思路为: 采用泛型的方式,首先定义了一个Queue的接口,然后通过实现该接口实现了线性和链式的两种形式的队列: 接口代码如下: package com.peter.java.dsa.interf ...

  7. wcf跨机器访问的问题

    wcf跨机器访问的问题 在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话 ...

  8. ROWNUMBER()、RANK()、DENSE_RANK()、NTILE1

    SQLServer针对排名函数ROWNUMBER().RANK().DENSE_RANK().NTILE的研究!~ 相信大家在软件工程中经常会遇到对某些数据进行排名的问题,尤其是对于电子商务的HR来说 ...

  9. c# 自定义多选下拉列表2

    以下为工作中遇到的,备注一下 先需要几个辅助类 #region GripBounds using System.Drawing; internal struct GripBounds { ; ; pu ...

  10. Hibernate:如何映射聚合?

    Hibernate:如何映射聚合? 目录 背景映射聚合聚合模型映射配置测试备注 背景返回目录 DDD 是在 Hibernate 之后发现的概念,Hibernate 如何映射 DDD 中的聚合呢?本文给 ...