学习Python之路(1)

前天开始学习Python,从今天开始每天更新。

最初的版本肯定是很详细,甚至有一些没必要的东西,我都记录了下来,以后有时间,会进行删减修改,毕竟是新手,连编程怎么学习都不是很清楚,慢慢摸索着来吧。感谢大神们的教程和书籍。

【切片】是一个很好用的工具,就是把一个list或者一个tuple中的内容切开,从前往后切从后往前切或者从中间切都可以。

EX:

>>>L=list(range(5))

>>>L[:5]

[0,1,2,3,4]

>>>L[:5:2]

[2,4]

>>>L[:-1]

[0,1,2,3,4]

【迭代】

>>> d={‘a‘:1,‘b‘:2,‘c‘:3}
>>> for key in d:
print(key)

b
a
c

>>> for value in d.values():
print(value)

2
1
3
>>> for k,v in d.items():
print(k,v)

b 2
a 1
c 3
>>> for ch in ‘ABC‘:
print(ch)

A
B
C

>>> from collections import Iterable
>>> isinstance(‘abc‘,Iterable)
True
>>> isinstance([1,2,3],Iterable)
True
>>> isinstance(123,Iterable)
False
>>>
>>> #为判断一个对象是否可以迭代
>>>
>>> for i,value in enumerate([‘A‘,‘B‘,‘C‘]):
print(i,value)

0 A
1 B
2 C
>>> #对list实现类似Java那样的下标循环,用enumrate函数
>>>
>>> for x,y
SyntaxError: invalid syntax
>>> for x,y in[(1,1),(2,4),(3,9)]:
print(x,y)

1 1
2 4
3 9
>>> #同时引入两个变量
>>>
>>> #小结:任何迭代对象都可以用作FOR循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用FOR循环
>>>
>>>

【列表生成式】

>>>
>>> list(range(1,11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> #简单的生成list[1,2,3,4,5,6,7,8,9,10]
>>> L=[]
>>> for x in range(1,11):
L.append(x*x)

>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> #生成[1*1,2*2,...,10*10]
>>> [x*x for x in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> #用列表生成式代替上面的语句
>>> [x*x for x in range(1,11) if x%2 ==0]
[4, 16, 36, 64, 100]
>>> #筛选出仅偶数的平方
>>> 1+1
2
>>> [m+n for m in ‘ABC‘ for n in ‘XYZ‘]
[‘AX‘, ‘AY‘, ‘AZ‘, ‘BX‘, ‘BY‘, ‘BZ‘, ‘CX‘, ‘CY‘, ‘CZ‘]
>>> #使用两层循环生成全排列
>>> import os #导入OS模块,模块的概念后面讲
>>> [d for d in os.listdir(‘.‘)]
[‘DLLs‘, ‘Doc‘, ‘include‘, ‘Lib‘, ‘libs‘, ‘LICENSE.txt‘, ‘NEWS.txt‘, ‘python.exe‘, ‘pythonw.exe‘, ‘README.txt‘, ‘Scripts‘, ‘tcl‘, ‘Tools‘]
>>> #列出当前目录下所有的文件和目录名
>>> d={‘x‘:‘A‘,‘y‘:‘B‘,‘z‘:‘C‘}
>>> for k,v in d,items():
print(k,‘=‘,v)

Traceback (most recent call last):
File "<pyshell#75>", line 1, in <module>
>>> for k,v in d.items():
print(k,‘=‘,v)

z = C
y = B
x = A
>>> #dict 的items()可以同时迭代key和value
>>> d={‘x‘:‘A‘,‘y‘:‘B‘,‘z‘:‘C‘}
>>> [k + ‘=‘ + v for k,v in d.items()]
[‘z=C‘, ‘y=B‘, ‘x=A‘]
>>> L=[‘Hello‘,‘World‘,‘IBM‘,‘Apple‘]
>>> [s.lower() for s in L]
[‘hello‘, ‘world‘, ‘ibm‘, ‘apple‘]
>>> #把list中所有的字符串变成小写
>>> L1=[‘Hello‘,‘World‘,18,‘Apple‘,None]
>>> L2=[x.lower() for x in L1 if isinstance(x,str)]
>>> print(L2)
[‘hello‘, ‘world‘, ‘apple‘]
>>> #用列表生成式快速生成一个只含有小写字母的list,非常的简洁方便
>>>

【生成器】

利用生成器计算斐波那契数列

【迭代器】

>>> from collections import Iterator
>>> isinstance((x for x in range(10)),Iterator)
True
>>> isinstance([],Iterator)
False
>>> isinstance({},Iterator)
False
>>> isinstance(‘abc‘,Iterator)
False
>>> #可以被next()函数调用并不断返回下一个值的对象成为迭代器;Iterator
>>>
>>> isinstance(iter([]),Iterator)
True
>>> isinstance(iter(‘abc‘),Iterator)
True
>>> #吧list,dict,str等Iterable变成Iterator可以使用iter()函数
>>>

{函数式编程}

【高阶函数】

>>> f=abs
>>> f(-10)
10
>>> f
<built-in function abs>
>>> #变量可以指向函数
>>> def add(x,y,f);
SyntaxError: invalid character in identifier
>>> def add(x,y,f):
return f(x) + f(y)

>>> add(-5,6,abs)
11
>>> #传入函数,最简单的高阶函数

【map/reduce】

>>> list(map(str,[1,2,3,4,5,6,7,8,9]))
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘]
>>> #map的用法
>>> from functools import reduce
>>> def add(x,y):
return x+y

>>> reduce(add,[1,3,5,7,9])
25
>>> #用reduce实现对一个序列求和
>>> from functools import reduce
>>> def fn(x,y):
return x*10+y

>>> reduce(fn,[1,3,5,7,9])
13579
>>> #把序列[1,3,5,7,9]变成整数13579
>>> from functools import reduce
>>> def fn(x,y):
return x*10+y

>>> def char2num(s):
return {‘0‘:0,‘1‘:1,‘2‘:2,‘3‘:3,‘4‘:4,‘5‘:5,‘6‘:6,‘7‘:7,‘8‘:8,‘9‘:9}[s]

>>> reduce(fn,map(char2num,‘13579‘))
13579
>>> #将str转换为int的函数
>>>   !!!练习题有些难,没有做

【filter】

【sorted】

时间: 2024-10-20 06:08:37

学习Python之路(1)的相关文章

小白学习Python之路---开发环境的搭建

本节内容 1.Python的介绍 2.发展史 3.安装Python 4.搭建开发环境 5.Hello World程序 一.Python的介绍 Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum).1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承.之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧<蒙提.派森干的飞行马戏团>(Monty Pyth

学习python之路_入门篇A

偶尔经同事的介绍进入了金角大王的博客里,看到大王编写的文章都是关于python编程的,由于自己一直也是做软件测试方面的工作,也一直想往自动化测试方面发展,了解到利用python可以进行自动化测试操作,可以减少人工测试的繁锁操作. 读了python的基础篇了解了python的发展历史及python的基础知识点,就开始跟着课程去编写一些小脚本. 如下面是使用了for循环的语句: 1 for i in range(10): 2 print("*******",i) 3 for j in ra

学习PYTHON之路, DAY 8 - PYTHON 基础 8 (面向对象进阶)

类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份. 一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 字段定义和使用 由上述代码可以看出[普通字段需要通过对象来访问][静态字段通过类访问],在使用上可以看出普通字段和静态字段的归属是

学习PYTHON之路, DAY 7 - PYTHON 基础 7 (面向对象基础)

面向对象三大特性 一.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 第一步:将内容封装到某处 self 是一个形式参数,当执行 obj1 = Foo('wupeiqi', 18 ) 时,self 等于 obj1 当执行 obj2 = Foo('alex', 78 ) 时,self 等于 obj2 所以,内容其实被封装到了对象 obj1 和 obj2 中,每个对象中都有 name

学习PYTHON之路, DAY 1 - PYTHON 基础 1

一 PYTHON 安装 1. Python下载 (1) www.python.org官网 (2) 选择可执行文件( 64位3.5.2Windows x86-64 executable installer或32位3.5.2 Windows x86 executable installer).(64位2.7.12 Windows x86-64 MSI installer或32位2.7.12 Windows x86 MSI installer) 2. Python安装,包括Python2和Python

学习PYTHON之路, DAY 4 - PYTHON 基础 4 (内置函数)

注:查看详细请看https://docs.python.org/3/library/functions.html#next 一 all(), any() False: 0, Noe, '', [], {}, () all()  全部为真是, 才为真 any() 任何一个为真, 都为真 二 bin(), oct(),hex() bin(), 接收十进制转二进制 (0b) oct(), 接收十进制转八进制 (0o) hex(), 接收十进制转十六进制 (0x) 三 bytes() bytes(只要转

学习Python之路:变量

变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型. 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建 = 左边是一个变量名 = 右边是存储在变量中的值 ******************************** qq_number = "1234567" print(qq_number) 输出结果为1234567 ******************************* 命

学习Python之路:算术运算符

算术运算符 和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是: 先乘除后加减 同级运算符是 从左至右 计算 可以使用 () 调整计算的优先级 下面是总结的算术运算符 原文地址:https://www.cnblogs.com/sfanspace/p/8194944.html

学习Python之路:逻辑运算符

逻辑运算 在程序开发中,执行结果 可能和 多个条件有关 比如 多个条件都成立才能执行,或者有一个条件成立就可以执行,这时就需要使用 逻辑运算符 逻辑运算符 可以把 多个条件 按照 逻辑 进行 连接,变成 更复杂的条件 Python 中的 逻辑运算符 包括:与 and/或 or/非 not 三种 1 .and 条件1 and 条件2 与/并且 两个条件同时满足,返回 True 只要有一个不满足,就返回 False 条件 1 条件 2 结果 成立 成立 成立 成立 不成立 不成立 不成立 成立 不成