在学习过程中总结如下,如果有什么地方不正确的还请大家指正:

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 两周小结相关推荐

  1. python修饰器classmate_[python基础]装饰器、迭代器、生成器

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象 它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理. ...

  2. python 修饰器 教程_python 实现 修饰器模式

    无论何时我们想对一个对象添加额外的功能,都有下面这些不同的可选方法. 如果合理,可以直接将功能添加到对象所属的类(例如,添加一个新的方法) 使用组合 使用继承 与继承相比,通常应该优先选择组合,因为继 ...

  3. python修饰器_python设计模式之修饰器模式

    python设计模式之修饰器模式 无论何时我们想对一个对象添加额外的功能,都有下面这些不同的可选方法. [ ] 如果合理,可以直接将功能添加到对象所属的类(例如,添加一个新的方法) [ ] 使用组合 ...

  4. Python修饰器的函数式编程

    转载自:https://coolshell.cn/articles/11265.html 加了一些自己的注释. Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其 ...

  5. python修饰器原理_Python修饰器的函数式编程

    Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都 ...

  6. 作为程序员,起码要知道的 Python 修饰器!

    Python修饰器是个非常强大的概念,可以用一个函数去"包装"另一个函数.修饰器的思想,就是把函数中除了正常行为之外的部分抽象出去.这样有很多好处,如很容易进行代码复用,并且能遵守 ...

  7. python 修饰器

    作用 简单的说,python修饰器就是可以对函数的参数以及返回结果进行操作. 如果已经懂了函数闭包的朋友相信已经大概知道该怎么做了,还有不懂的朋友可以看我的这篇文章--python闭包简记. 理解修饰 ...

  8. 介绍python修饰器的书_python修饰器

    1.参数args与kwargs: *args是元组,如def fun(args): pass 传过去的参数是元组形式fun(1,2,3),args=(1,2,3); *kwargs是字典型,如def ...

  9. python装饰器-python修饰器(装饰器)以及wraps

    Python装饰器(decorator)是在程序开发中经常使用到的功能,合理使用装饰器,能让我们的程序如虎添翼. 装饰器的引入 初期及问题的诞生 假如现在在一个公司,有A B C三个业务部门,还有S一 ...

最新文章

  1. [CF125E]MST Company
  2. 专访:Vmware眼中的虚拟化
  3. HttpClient的性能隐患
  4. 【HDU - 5878】I Count Two Three(打表)
  5. 语音识别学习日志 2019-7-15 语音识别基础知识准备4 {Baun-Welch算法}
  6. 阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
  7. LeetCode450题—— 删除二叉搜索树中的节点
  8. 我的内核学习笔记12:linux i2c-gpio驱动应用实例
  9. 数据清洗----缺失值处理
  10. 传导EMI抑制-π型滤波器设计
  11. java后台实现HTTPS协议方法
  12. java 字符串 空白字符_Java String中移除空白字符的多种方式汇总
  13. python批量提取视频帧
  14. Python OCR工具pytesseract详解
  15. python 录音左右声道_Python分离立体声wav压缩文件的左右声道
  16. 强制内联和强制不内联
  17. 高效能人士的七个习惯——习惯三要事第一
  18. ArcGIS Server出图之Dynamic Layers
  19. 在c程序语言中aph,C 语言试题
  20. labview的公式Express VI和公式节点

热门文章

  1. Byte学堂:手机信令大数据格式及应用价值
  2. 摄像头直播 嵌入html,在html下如何实现摄像头录制的视频实时显示在当前页面中的另一个video中...
  3. C++ MFC棋牌类小游戏day1
  4. java对redis性能监控编码_Redis状态与性能监控
  5. Vue文件上传问题合集
  6. 大学模电实验合集丨实验四 直流差分放大电路
  7. matlab励磁系统阶跃仿真,基于MATLAB的励磁系统仿真研究
  8. 数据库管理工具DBeaver的下载以及安装
  9. 一种新的具有多尺度结构感知的全色锐化方法
  10. 粤北华南教育历史研学基地(坪石)调研之一