从python学编程_【python】从python开始学编程

本文介绍了Python的基础语法,包括变量、序列(元组、列表、字符串)的操作,字典的使用,循环控制(for、while),文件输入输出,以及函数的概念和参数传递。特别强调了可变对象与不可变对象在函数传参中的区别,并展示了高阶函数如lambda、map、filter和reduce的运用。此外,还简要提到了迭代器、生成器和表推导式在Python中的应用。
摘要由CSDN通过智能技术生成

1)变量不需要删除,可以直接回收使用

>>>a = 10

>>>print a.type(a)

10,

>>>a = 1.3

>>>print a.type(a)

10,

2)序列:一组有顺序的元素的集合

tuple:元祖,元素一旦确定,就不可更改

list:列表,元素与可以任意修改  s[1]=3,对list进行赋值,但是tuple不许这样做

str:字符串是一种元祖

2.1)索引:[上限:下限:步长] 不包含上限

>>>print  s[:5]  从开始到下标4,不包括5

>>>print  s[2:]  从2开始到最后

>>>print  s[0:5:2]  从0开始到下标4,不包括5,取出0,2,4

>>>print  s[2,0,-1] 从下标2到1,不包括0

>>>print s[-1]  最后一个元素

>>>print s[-3]  最后第三个元素

2.2)字典

1)键值对:键-->不可变对象;值-->任何对象

2)字典是无序的,通过键来取值;list/tuple是有序的,通过下标来取值

3)常见用法:

dic = {'tom':11, 'sam':57,'lily':100}  创建字典

dict = {}  创建空字典

dic['lilei'] = 99  在字典新增元素

dic.clear()  清空字典元素

del dic['tom']   删除 dic 的‘tom’元素

遍历字典

dic.keys()、dic.values()、dic.items()  获取所有键、所有值、所有元素(键值对)

for key,value in dic.items:

print key,value

3)序列的方法:

3.1)str、tuple、list方法:

len(s)         返回: 序列中包含元素的个数

min(s)         返回: 序列中最小的元素

max(s)         返回: 序列中最大的元素

all(s)         返回: True, 如果所有元素都为True的话

any(s)         返回: True, 如果任一元素为True的话

3.2)tuple、list方法:

sum(s)         返回:序列中所有元素的和

s.count(x)     返回: x在s中出现的次数

s.index(x)     返回: x在s中第一次出现的下标

3.3)list方法

l.extend(l2)        在表l的末尾添加表l2的所有元素

l.append(x)         在l的末尾附加x元素

l.sort()            对l中的元素排序

l.reverse()         将l中的元素逆序

l.pop()             返回:表l的最后一个元素,并在表l中删除该元素

del l[i]            删除该元素

sorted([1,5,3])                  # 返回正序的序列,也就是[1,3,5]

reversed([1,5,3])                # 返回反序的序列,也就是[3,5,1]

3.4)str方法:

str.isalnum()        返回:True, 如果所有的字符都是字母或数字

str.isalpha()        返回:True,如果所有的字符都是字母

str.isdigit()        返回:True,如果所有的字符都是数字

str.istitle()        返回:True,如果所有的词的首字母都是大写

str.isspace()        返回:True,如果所有的字符都是空格

str.islower()        返回:True,如果所有的字符都是小写字母

str.isupper()        返回:True,如果所有的字符都是大写字母

str.split(',')       以,为分隔符str,结果保存到一个list里面(默认分隔符为空格)

str.rsplit(',')      从右边开始,分割(默认分隔符为空格)

'+'.join(str)        将字符串以+连接起来

str.strip([sub])     返回:去掉字符串开头和结尾的空格。也可以提供参数sub,去掉位于字符

串开头和结尾的sub

str.replace(sub, new_sub)  返回:用一个新的字符串new_sub替换str中的sub

4)循环:for循环,while循环

4.1)循环的跳出

continue:跳过某一次循环

for i in range(10):    if i == 2:

continue

print i

>>>当i==2的时候,不执行,因此输出0,1,3,4,5,6,7,8,9

break:跳出整个循环

for i in range(10):    if i == 2:

break

print i

>>>当i==2的时候,跳出整个循环,因此输出0,1

4.2)循环获取元素的下标

for (index,char) in enumerate(S):  enumerate()在每次循环中,返回的是一个包含两个

元素的定值表(tuple),两个元素分别赋予index和char

5)文本文件的输入与输出

1)文件打开方式

r    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式

w    打开一个文件只用于写入。如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件

a    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾;如果该文件不

存在,创建新文件

r+    打开一个文件用于读写

w+    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。

文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

2)一般读取文件,用于for循环

read():一次性读取,存到一个str里面

readlines():一次性读取,存到一个list里面

6)函数

方便我们重复的使用某一段功能;

return用于返回值,函数中遇到return的话,会结束执行函数体;要是没有return的话,python会抛出None,表示没有值

6.1)函数的参数传递:

python的函数参数传值,传的是变量指向的内存地址的值;

分类:不可变对象传参、可变对象传参

传参类型:

位置传参;包裹传递(*args/**args);关键字传参

传参的规则:先位置,再关键字,再包裹位置,再包裹关键字

6.2)python的变量和对象

变量是没有类型的,可以指向任何对象的;

对象:分为不可变对象(int/tuple/string等)和可变对象(list/dict等)

a = 1

def change_integer(a):

a = a + 1

return a

print change_integer(a)

print a

>>>输出2 1  不可变对象传参:基本数据类型的变量,变量传递给函数后,函数会在内存中复制

一个新的变量,从而不影响原来的变量

b = [1,2,3]

def change_list(b):

b[0] = b[0] + 1

return b

print change_list(b)

print b

>>>输出 [2,2,3] [2,2,3]  可变对象传参;表来说,表传递给函数的是一个指针,指针指向

序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量

6.3)常见函数

lambda函数

func = lambda x,y: x + y

print func(3,4)

高阶函数:函数作为参数传递

def test(f, a, b):    print 'test'

print f(a, b)

test((lambda x,y: x**2 + y), 3, 5)

map函数:依次将函数对象作用于表中元素,第一个参数为函数

re = map((lambda x: x+3),[1,3,5,6])

re = map((lambda x,y: x+y),[1,2,3],[6,7,9])

filter函数:过滤;如果函数对象返回的是True,则该次的元素被储存于返回的表中

def func(a):

if a > 100:

return True

else:

return False

print filter(func,[10,56,101,500])

reduce:依次叠加进行操作;第一个函数必须要有2个参数

print reduce((lambda x,y: x+y),[1,2,5,7,9])

7)迭代器、生成器、表生成式

7.1)迭代器

迭代器实际上和for循环差不多,唯一的区别是迭代器需要遍历"可迭代对象(基本上所有序列都是

可迭代对象,除了这些容器,还有打开文件、socket等都是可迭代对象)";迭代器不会一开始就把

所有值取出来放到内存,而是用到时才一个个取

a = iter([1,2,3])  a就是一个迭代器;for循环默认会执行这一步

7.2)生成器:主要目的是构成一个用户自定义的循环对象

def gen():

for i in range(4):

yield i

if __name__ == "__main__":

for i in gen()

print i     此处的gen()为生成器函数,采用for循环取出4次;实际内部执行的是next(),

for循环默认会执行next()

G = (x for x in range(4))   生成器表达式:中括号

7.3)表推倒公式

xl = [1,3,5]

yl = [9,12,13]

L  = [ x**2 for (x,y) in zip(xl,yl) if y > 10]  方括号;zip函数接收任意多个

参数,然后返回一个tuple

>>>输出[9,25]

8)类

8.1)类的组成

属性:就是变量,表示类具有的属性:看起来怎么

方法:类具有的一些动作,通过函数实现:能干什么

类:一类事物的集合

8.2)继承

子类将继承父类所有的属性和方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值