python修饰器classmate_初学 python 两周小结
在学习过程中总结如下,如果有什么地方不正确的还请大家指正:
2015.6.15~2015.6.21
1. 输入输出 name=input('Please input your name: ')
print('hello,',name)
length=float(input('请输入正方形边长:'))
mj=length*length
print('正方形面积为:',mj)
2. 转义字符使用 print('I\'m \"OK\" !')
转义字符\可以转义很多字符,比如\n 表示换行,\t 表示制表符,字符\本身也要转义,所以\表示的字符就是\
print('I \'m learning\nPython.')
print('\\\n\\')
如果字符串内部有很多行,用\n 写在一行里不好阅读,为了简化,Python 允许用'''...'''的格式表示多行内容:
print('''line1
line2
line3''')
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python 还允许用 r''表示''内部的字符串默认不转义:
print('\\\t\\')
print(r'\\\t\\')
2015.6.22~2015.6.28
1. 字符相关
最新的 python3 中,字符串以 Unicode 编码,支持多语言
1. 单个字符的编码,python 可以用 ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符 print(ord('b'))
print(ord('B'))
print(ord('中'))
print(chr(66))
print(chr(25991))
2. Python 直接输出字符的整数编码,以十六进制表示如下: print(‘\u4e2d\u6587’)
3.Python 对 bytes 类型的数据自带 b 前缀表示,bytes 的每个字符都只占用一个字节 x=b’ABC’
4.以 Unicode 表示的 str 通过 encode()和 decode()进行编码和解码操作 print('ABC'.encode('ascii'))
print('中文'.encode('utf-8'))
print('中文'.encode('gb2312'))
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))
注:
1. 在 bytes 中,无法显示为 ascii 字符的字节,用\x## 显示
2. 为了避免乱码问题,通常会在文件开头加上:
#!/usr/bin/env python3 (告诉 linux/os x 系统,这是一个 python 可执行程序,windows 会忽略这个注释)
#-- coding: utf-8 --(告诉 python 解释器,按照 utf-8 编码读取源代码)
5.获取 str 多少字符函数:len()。(注:如果换成 bytes,则计算字节数)
中文字经过 utf-8 编码后变为 3 个字节
例如:
print(len('中文')) >>>2
print(len('中文'.encode('utf-8'))) >>>6
2.格式化
1. Python 中采用的格式化方式和 c 语言是一致的,用% 实现 print('Hello,%s' % 'world')
print('Hi, %s, you have $%d.' % ('lily',100))
当只有一个参数时,括号可以省略
2.格式化整数和浮点数还可以指定是否补 0 和整数与小数的位数: print('%2d-%02d'%(3,1))
print('%.2f'%3.1415)
3.字符串中有% 号时使用 “%%” 来表示
练习
S1=72
S2=85
R=(S2/S1-1)*100
print(R)
print('%.1f %%'%R)
3.List 和 tuple
1.List 中可以使用-1 来取最后一个元素 Classmate=[‘m’,’n’,’b’]
print(Classmate[-1])
print(Classmate[-2])
2.直接删除 list 末尾的元素,用 pop()方法 >>>classmates.pop() -->’b’
>>>classmates -->[‘m’,’n’]
删除指定位置的元素直接用 pop(i)方法
>>>classmates.pop(1) --->’n’
>>>classmates -->[‘m’]
替换 list 中的值时,直接给对应的索引值进行赋值就可以了
>>>classmates[0]=’s’
>>>classmates -->[‘s’]
Tuple(元组)
1.Tuple 和 list 非常相似,但是 tuple 中的值不可以改变,也没有 append(),insert()这样的方法,也无法赋值为另外的值。
注:要定义只有 1 个元素的 tuple 时,要加一个逗号,以便与数学公式中的小括号有所区别,消除歧义
例如:
>>>t=(1,) -->(1,)
>>>t=(1) -->1
4.循环
练习:
L=['a','b','c']
for循环
for x in L:
print('hello,%s' % x)
while循环
lt=len(L)
n=0
while n
print('hello,%s' % L[n])
n = n + 1
print(n)
5. dict 和 set
1. Python 内置了字典:dict 的支持,dict 全程 dictionary,在其他语言中也称为 map,使用键 - 值(key-value)存储,具有极快的查找速度。
例如:
>>>d ={‘Michael’:95,’Bob’:75,’Tracy’:85}
>>>d[‘Michael’]
95
####2. 还可以对 key 进行替换赋值操作,代码如下:
>>>d[‘Michael’]=90
>>>d[‘Michael’]
90
3.还可以对 key 进行添加操作,代码如下: >>>d[‘Jack’]=88
>>>d[‘Jack’]
88
4. 为了避免 key 不存在的错误,有两种方法,一是通过 in 判断 key 是否存在 >>> ’Had’ in d
False
二是通过 dict 提供的 get 方法,如果 key 不存在可以返回 none,或者自己指定的 value:
>>>d.get(‘Thomas’)
>>> d.get(‘Thomas’,-1)
-1
注意:返回 None 的时候 Python 的交互式命令行不显示结果
5.删除一个 key,使用 pop(key) 方法 >>> d.pop(‘Bob’)
75
>>> d
{‘Michael’:95,’Tracy’:85}
请务必注意,dict 内部存放的顺序和 key 放入的顺序是没有关系的。
-和 list 比较,dict 有以下几个特点:
1. 查找和插入的速度极快,不会随着 key 的增加而增加;
2. 需要占用大量的内存,内存浪费多
-而 list 相反:
1. 查找和插入的时间随着元素的增加而增加;
2. 占用空间小,浪费内存很少。
所以,dict 是用空间来换取时间的一种方法。
Dict 可以用在需要高速查找的很多地方,在 Python 代码中几乎无处不在,正确使用 dict 非常重要,需要牢记的第一条是 dict 的 key 必须是不可变对象。
这是因为 dict 根据 key 来计算 value 的存储位置,如果每次计算相同的 key 得出的结果不同,那 dict 内部就完全混乱了。这个通过 key 计算位置的算法成为哈希算法(Hash)。
要保证 hash 的正确性,作为 key 的对象就不能变。在 Python 中,字符串、整数等都是不可变的,因此,可以放心的作为 key。而 list 是可变的,就不能作为 key。
6.Set 和 dict 类似,也是一组 key 的集合,但是不存储 value。由于 key 不能重复,所以 set 中没有重复的 key。
创建 set:
>>>s=set([1,2,3])
>>>s
{1,2,3}
也可以直接初始化赋值
s={1,2,3}
注意:传入的参数 [1,2,3] 是一个 list,而显示的{1,2,3}只是告诉我们这个 set 内部有 1,2,3 这 3 个元素,显示的顺序也不表示 set 是有序的。
7.Set 通过 add(key)方法添加元素 >>>s.add(4)
>>>s
{1,2,3,4}
8. 通过 remove(key)方法可以删除元素: >>>s.remove(4)
>>>s
{1,2,3}
9.Set 会自动过滤重复的元素
10.Set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的交集、并集等操作: >>>s1=set([1,2,3])
>>>s2=set([2,3,4])
>>>s1&s2
{2,3}
>>>s1|s2
{1,2,3,4}
11.不含 list 的 tuple 可以做 key 或者 value
学习的有点慢,距离我 7 月底初步掌握 python 还有点距离,不过我会继续努力的,给自己打打气加油加油,哈哈
python修饰器classmate_初学 python 两周小结相关推荐
- python修饰器classmate_[python基础]装饰器、迭代器、生成器
装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象 它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理. ...
- python 修饰器 教程_python 实现 修饰器模式
无论何时我们想对一个对象添加额外的功能,都有下面这些不同的可选方法. 如果合理,可以直接将功能添加到对象所属的类(例如,添加一个新的方法) 使用组合 使用继承 与继承相比,通常应该优先选择组合,因为继 ...
- python修饰器_python设计模式之修饰器模式
python设计模式之修饰器模式 无论何时我们想对一个对象添加额外的功能,都有下面这些不同的可选方法. [ ] 如果合理,可以直接将功能添加到对象所属的类(例如,添加一个新的方法) [ ] 使用组合 ...
- Python修饰器的函数式编程
转载自:https://coolshell.cn/articles/11265.html 加了一些自己的注释. Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其 ...
- python修饰器原理_Python修饰器的函数式编程
Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都 ...
- 作为程序员,起码要知道的 Python 修饰器!
Python修饰器是个非常强大的概念,可以用一个函数去"包装"另一个函数.修饰器的思想,就是把函数中除了正常行为之外的部分抽象出去.这样有很多好处,如很容易进行代码复用,并且能遵守 ...
- python 修饰器
作用 简单的说,python修饰器就是可以对函数的参数以及返回结果进行操作. 如果已经懂了函数闭包的朋友相信已经大概知道该怎么做了,还有不懂的朋友可以看我的这篇文章--python闭包简记. 理解修饰 ...
- 介绍python修饰器的书_python修饰器
1.参数args与kwargs: *args是元组,如def fun(args): pass 传过去的参数是元组形式fun(1,2,3),args=(1,2,3); *kwargs是字典型,如def ...
- python装饰器-python修饰器(装饰器)以及wraps
Python装饰器(decorator)是在程序开发中经常使用到的功能,合理使用装饰器,能让我们的程序如虎添翼. 装饰器的引入 初期及问题的诞生 假如现在在一个公司,有A B C三个业务部门,还有S一 ...
最新文章
- [CF125E]MST Company
- 专访:Vmware眼中的虚拟化
- HttpClient的性能隐患
- 【HDU - 5878】I Count Two Three(打表)
- 语音识别学习日志 2019-7-15 语音识别基础知识准备4 {Baun-Welch算法}
- 阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
- LeetCode450题—— 删除二叉搜索树中的节点
- 我的内核学习笔记12:linux i2c-gpio驱动应用实例
- 数据清洗----缺失值处理
- 传导EMI抑制-π型滤波器设计
- java后台实现HTTPS协议方法
- java 字符串 空白字符_Java String中移除空白字符的多种方式汇总
- python批量提取视频帧
- Python OCR工具pytesseract详解
- python 录音左右声道_Python分离立体声wav压缩文件的左右声道
- 强制内联和强制不内联
- 高效能人士的七个习惯——习惯三要事第一
- ArcGIS Server出图之Dynamic Layers
- 在c程序语言中aph,C 语言试题
- labview的公式Express VI和公式节点
热门文章
- Byte学堂:手机信令大数据格式及应用价值
- 摄像头直播 嵌入html,在html下如何实现摄像头录制的视频实时显示在当前页面中的另一个video中...
- C++ MFC棋牌类小游戏day1
- java对redis性能监控编码_Redis状态与性能监控
- Vue文件上传问题合集
- 大学模电实验合集丨实验四 直流差分放大电路
- matlab励磁系统阶跃仿真,基于MATLAB的励磁系统仿真研究
- 数据库管理工具DBeaver的下载以及安装
- 一种新的具有多尺度结构感知的全色锐化方法
- 粤北华南教育历史研学基地(坪石)调研之一