Python学习笔记

关键字

85893a3b5f9d4640a4f2fef6cacd3e06.png

关键字不允许作为标识符使用。 

type()函数:查看变量类型

sum()函数:将数值进行加法运算求和

若前面将函数进行赋值,后可用del()后函数对被赋值的函数进行回收,而后回复原本函数的功能。

Python解释器可将 -5~256存放在一个小整数池里,就不需要其他空间对其进行分配地址空间。

输入函数与输出函数

input() :实现从标准输入(键盘)中读入一个字符串

input().split():输入多个值在一行中实现

例如:a,b=input().split()

12 34

a=12  b=34

print():实现将括号里的内容进行打印输出,会默认以换行符作为输出结束

数字类型

整数:可正可负,整数采用十进制,其他进制需要引进相应的引导符号

整数不同进制的表示

进制                前导符      示例     十进制

二进制            0b或0B     0b10         2

八进制            0o或0O    0o10         8

十六进制        0x或0X     0x10        16

浮点数:取值范围与实数都有限制

浮点数运算存在不确定尾数,有偏差。此时可以用round()函数进行约等于运算

函数格式:round(运算式子,保留几位小数)

复数(complex):由实部和虚部构成,可用于创建一个复数

例如:complex(2,3)------2+3j

算术运算符

b0ec1dce08f342bd995c08704ee11bde.png

 PS:(整数除法时,结果取数轴靠左的整数)

字符串

是以引号括起来的任意文本

表示形式:

单引号:'Hello'     双引号:"Hello"     三引号:‘“Hello World'"

 

转移符号 3da4c1016e5f4567b5db4f6cdc594e2b.png

                                                                 

                                                                字符串运算符

3533f02220cc4923a01383ee8c5c92e5.png

 

字符串切片:

d71d9668ddb44dea8857f0c63954b91e.png

 顺序可以正向递增,也可反向递减

索引:在 [ ] 中给出序号

切片:在 [ ] 给出切片序号范围
例如:

s="abcdefgh"

s[0] >> a      s[-1] >> h    s[1:5]>> bcde

布尔值:Ture、False

关系运算符

11cec9b26f4f44a69a53cb4626ecd176.png

 

实例

7307d9dee3124576b7cbc27d82d9b2a1.png

 逻辑运算符

        任意一个不相同则为False

        只要其中一个满足则为True

        取反

实例

89f41149aeca4ed79cc8de7c09b201e6.png

 优先级和结合级实例

17f4c99ee1074b02bd845261ce32fd1d.png

内置转换函数

62c7eb5e137942b4b5d2c3249b703255.png

 实例

42f1a4c75a914c76a91c81cd49d8bfa0.png

 ps:bool()里面的字符串只要非零就为True

实例

b8056e5d9dfc4419b99d59608178be48.png

 ps:int("    3   5     ")这种表示会出现error

int("35",8)将八进制35转换为十进制29

 

ord()函数和chr()函数 

ea16881ef9cc48d3b9488445e401c258.png

bin()函数、oct()函数、hex()函数

58e2e33d629741159113fc41a3e9382b.png

赋值语句

x=1            y=1

k=x+y        k=2

x,y=4,8         x=4        y=8

x,y="ab"        x=a        y=b

交换值

a,b=b,a        a=8        b=4

两个元素存放多个数

i,j=[1,2,3] ×

i,*j=[1,2,3]        i=1        j=[2,3]

分支语句

if 逻辑表达式:(为真)

                语句块1

else:              (为假)

                语句块2

循环语句

for  variable(变量) in  列表(范围):

                语句块(执行次数由多少个值决定)

for i in [1,2,3,4]:

        print(i,end=' ')

>>>1 2 3 4

产生范围的函数

353d0c99f445421c92ad9066028ce079.png

 例

list(range(10))

>>>[0,1,2,3,4,5,6,7,8,9]

list(range(1,10))

>>>[1,2,3,4,5,6,7,8,9]

list(range(1,10,4))

>>>[1,5,9]

也可以递减

 

应用问题

求n!

n=int(input())

f=1

l=list(range(1,n+1))

for i in l:

        f=f*i

print(f)

 

列表推导式 

88027d20080d40748177cef98d37a878.png

nl=[2*number for number in [1,2,3,4,5]

>>>nl

[2,4,6,8,10]

527ae02b68a44cb58934033143e7054b.png

format()函数

28fdcc51f0bb4c6bb2c7e7ffded1c4d5.png

 

序列类型容器

容器:存放东西的地方

s1=[1,2,3]         s1就是一个容器

s2=[4,5,6]

s3=s1+s2

>>>s3

[1,2,3,4,5,6]         s1+s2将容器s3扩大了

判断某元素是否在容器中

t=[1,2,3]

>>>1 in t

True

>>>[1,2] in t

Flase

t=[[1,2],3]

>>>[1,2] in t

True

取单个元素

一、

t1=[1,2,3]

>>>t1[0]

1

>>>t1[1]

2

二、

>>>t1=[1,2,3][2]

3

>>>t1=[1,2,3][-1]

3

>>>t1=[1,2,3]

>>>t1[0]

1

>>>t1[0]=4

>>>t1

[4,2,3]

这是数字赋值,但字符串并不支持赋值

t1='123'

t1[0]='4'

>>>error

三、

t1='123'

>>>t1[len(t1)-1]

3

列表切片 

sfz='478934199708027121'

>>>sfz[6:14]

'19970802'

如果字符太长,可用以下方法

>>>'1234456'[0:-1] ([:-1])

'123445'

[:1] 该形式默认从0开始

>>>'zhejiang'[3:]

'jiang'

[3:] 默认到最后一个结束

序列的函数

len()        计算序列长度

>>>s1[1,2,3]

>>>len(s1)

3

max() 和 min()        找出序列中的最大和最小元素

>>>max(s1)

3

>>>min(s1)

1

如果出现想输出以下字符串

It's a good day.

但是‘It' a good day.'中'It'已经组成了一个字符串就无法得到想要的字符串

解决方案:

"It's a good day."        改为双引号

or        'It\'s a good day'        利用一个反斜杠\

\'表示一个单引号 但并不表示结束

三引号的应用'''

>>>s='''This

is

a

test.

'''

>>>s

'This\nis\na\ntest.\n'

但如果

>>>print(s)

This

is

a

test.

若>>>s='this\

is\

a\

test.\

>>>s

'thisisatest.'        并没有输出反斜杠\

>>>print(s)

'thisisatest.'

上面反斜杠的意思表示语句没有结束,下一行的要紧跟着上一行

>>>s=r'this\nis\na\ntest.'

>>>s

'this\\nis\\na\\ntest.'

>>>print(s)

this\nis\na\test.

r在这里的作用表示这个字符串是一个原始字符串,字符串里的反斜杠\是不被当初转义字符的前缀,所以所有的反斜杠\会被python的解释器重新还原成两个转义字符的形态

字符串函数

某个字符串加上一个点. 后面再加上函数才可以使用

lower():将字符串里的所有大写字母变成小写字母

>>>s='John Smith'

>>>s

'John Smith'

>>>s1=s.lower()

>>>s1

'john smith'

但s不会改变大小写

find():找到指定字符在字符串中所在位置

>>>s.find('hn')

2

>>>s.find('aa')

-1        没有找到返回-1

另一种用法:

>>>'Hello World'.find('l')

2

>>>'Hello World'.find('l',3)

3

find(想查找的字符,从第几个字符开始从左往右进行查找)

count():记录字符出现的次数

>>>'Hello World'.count('l')

3

strip():去掉左右两边的空格

>>>s=' Hello World '

>>s.strip()

'Hello World'

>>>s.rstrip()        将右边的空格去掉

' Hello World'

>>>s.lstrip()        将左边的空格去掉

'Hello World '

replace():将字符串里的某个字符替换成另一个字符

>>>s.replace(' ','')

'Hello Wolrd'

>>>s.replace(' ','-')

‘-Hello-World-'

百分号%的应用

字符串和数字之间的转换

一.

>>>'I am %d years old' %18

'I am 18 years old'

二.

>>>'I am %d years old and weight %d kg' %(18,60)        出现多个%d需要用括号

'I am 18 years old and weight 60 kg'

三.

>>>'It is %.1fC' %25.562        %.数字 代表保留小数点后几位

'It is 25.6C'

四.

>>>'It is %5dC' %25        %数字 代表前面空多少格(包括输入数的位置)

'It is    25C'

list():将括号里的元素转成列表

>>list('123')

['1','2','3']

需要注意的地方

>>>t1=[1,2,3]

>>>t2=t1

>>>t2[0]=0

t2=[0,2,3]

>>>t1

t1=[0,2,3]        t1=t2是因为这两个指向了同一个列表

若想分成两个不相干的列表

t2=t1[:]        利用切片,这样就分成了两个互不干扰的列表

 

若想替换列表中的值,可利用如下形式

>>>t=[1,2,3,4,5,6,7,8,9,10]

>>>t[2:4]=[10:20]

t=[1,2,10,20,5,6,7,8,9,10]

ea3d2ea3cac043abb337caee1e42cb2d.png

 若想多加列表中的值,可利用如下形式

>>>t=[1,2,3,4,5,6,7,8,9,10]

>>>t[2:4]=[10:20:30]

t=[1,2,10,20,30,5,6,7,8,9,10]        就会在列表里多加一个位置存放多出的一个数

若想删除列表中的值,可利用如下形式

一、

>>>t=[1,2,3,4,5,6,7,8,9,10]

>>>t[2:4]=[:]

t=[1,2,5,6,7,8,9,10]

二、

del:将某一位置的字符删除

>>>del t[2]

t=[1,2,4,5,6,7,8,9,10]

 

列表的函数

append():在列表后面增加一个数

>>>t1=[1,2,3]

>>>t1.append(5)

>>>t1

[1,2,3,5]

extend():在列表后面增加一串数

>>>t1.extend([5,6,7])

>>>t1

[1,2,3,5,6,7]

insert():在列表中插入一个数

>>>t1.insert(1,9)        insert(某个位置前,插入某个数)

>>>t1

[1,9,2,3]

>>>t1.insert(100,-1)

>>>t1

[1,9,2,3,-1]        若超出列表范围,则默认加在列表末尾

 

remove():删除指定大小的那个数

>>>t1.remove(1)

>>>t1

[9,2,3,-1]

pop():可以拿掉列表中最后的元素,也可将其弹出

>>>t1.pop()

>>>t1

[9,2,3]

>>>print(t1.pop())

-1

>>>print(t1.pop(2))

3

reverse():颠倒列表中所有元素的顺序

>>>t1.reverse()

>>>t1

[3,2,9]

index():查找函数所在位置

>>>print(t1.index(9))

split():利用指定内容作分格

>>>s='this is a test'

>>>s.split()

['this','is','a','test']

>>>s1='12:35'

>>>s1.split(':')

['12','35']

>>>s2='12::35'

>>>s2.split(':')

['12',' ','35']

join():将列表的各个元素组成一个字符串

>>>s='this is a test'

>>>t=s.split()

>>>t

['this','is','a','test']

>>>' '.join(t)        连接的东西.join()

'this is a test'

 

元组

元组和列表没有实质性的区别。元组为圆括号(),列表为方括号[]

元组里的内容不可修改

>>>t=[1,2,3]

>>>t[0]=0

>>>t

[0,2,3]

>>>p=(1,2,3)

>>>p[0]=0

error

tuple():将方括号转变为圆括号

>>>p=tuple(t)

>>>p

(0,2,3) 

如果有用逗号分割的量,那就会被系统默认成元组

>>>a,b=3,4

>>>a

3

>>>b

4

>>>(a,b)=(3,4)

>>>a

3

>>>

sort():将打乱的数字循序进行有序排列

>>>t=[4,5,7,1,2,3]

>>>t.sort()

>>>t

[1,2,3,4,5,7]

使用sort函数对列表降序排序

        旧列表.sort(reverse = True)        

        sort函数用法:

        列表名.sort(reverse = False)  其中,reverse = True 降序, reverse = False 升序(默认)   

 

随机库函数random

shuffle():将一组数据打乱且是随机的

>>>random.shuffle(t)

[2,5,7,3,1,4]

choice():从列表中随机选出一个元素

>>>random.choice(t)

2

 

random.random():随机产生一个0-1之间的浮点数

random.randint(1,100):随机产生一个1-100的整数

 

>>>random.seed(0)

>>>random.randint(1,100)

50

>>>random.randint(1,100)

98

>>>random.seed(0)

>>>random.randint(1,100)

50

>>>random.randint(1,100)

98

seed():产生随机数种子的函数,但根据上述显示并不完全“随机” ,是由一个计算公式得到的,会根据上一次随机数的值来计算下一个随机数

所以如果给了一个确定的seed(),那下一次永远是一个确定的值

seed()可以用来做测试,保证相同的序列

 

条件语句

if        条件:

        想要执行的语句        有缩进代表这条语句是从属上面的

else:

        想要执行的语句

 

else和if组成的新函数elif

f1570045a0de43e7a22d9e6e3516feab.png

                                                                  | 

 6673d0a11e8048eab9e52d77abfaa7c2.png

if 条件:

        执行语句

elif 条件:

        执行语句

else:

        执行语句

 

循环语句

while Ture(也可以是循环条件):

        执行语句1

        执行语句2

                .

                .

break:跳出循环

新手写while语句时,先不着急写循环条件,先写循环内部要执行的语句

for 元素 in range():

        执行语句

for循环也可以和else进行连用

例:判断两个数之间的数是否为素数,并将其相加

m,n=map(int,input().split)

sum=0

count=0

for x in range(m,n+1):

        for k in range(2,x):

                x%k==0

                break

        else:

                count+=1

                sum+=x

print(count,s)

 

range():产生数列的函数        用法在笔记开始部分

代码异常

x=int(input())

t=[1,2,3,4,5]

try:

        print(t[x])

except:

        print('x is not a valid index')       代码不会结束,不会报错,如果输入的x不再t的列表范围内,则会进入except执行print输出语句

 

新语句

else:当没有发生异常所执行的语句

finally:是否异常最后都要执行的语句

x=int(input())

t=[1,2,3,4,5]

try:

        print(t[x])

        print('hello')        检测是否做了try语句

except:

        print('x is not a valid index')

else:

        print('nothing')

finally:

        print('anyway')

 

一、若x在范围内,则执行try→else→finally

二、若x不在范围内,则执行except→finally

 

集合

{}表示

>>>s={1,2,3,3,4}

>>>s

{1,2,3,4}        唯一性

>>>s={1,2,4,5,3}

>>>s

{1,2,3,4,5}

add():向集合里添加一个数,并进行排序

>>>s.add(0)

{0,1,2,3,4,5}

集合是无序的

set():将列表转为一个集合,也可表示空集

>>>t=[1,2,4,5,3]

>>>s1=set(t)

>>>s1

{1,2,4,5,3}

集合的对象不能取下标,因为不能指定位置

>>>s1[0]

error

 

>>>s2={2,4,6,8}

>>>s1|s2        |符号为并集

{1,2,3,4,5,6,8}

>>>s1&s2        &为交集

{2,4}

>>>s1^s2        对称差(做完并集减去交集)

{1,3,5,6,8}

>>>s1-s2        相减,只留下s1的元素

{1,3,5}

 

字典        

dict():将内容变成一个字典

>>>d={'one':1,'two':2}        'one'称为键(key)

>>>d

{'one':1,'two':2}

>>>d['one']

1

>>>d['two']

2

若字典里要找其他东西,但改东西不存在时,可直接赋值

>>>d['three']=3

>>>d['three']

3

 

字典的基本运算

删除条目

del()语句,删除指定条目

del score['张三']

注:如果指定键不存在,则会抛出keyError异常

>>>d={'one':1,'three':3}

>>>for name in d:

        print(d[name])        内容

1

3

>>>for name in d:

        print(name)        键

one

three

 如果原本就在字典里,可以重新赋值修改

>>>d['name']=值

len():在字典里可计算条目个数

min():在字典里找到长度最小的key(键)

max():在字典里找到长度最大的键

sum():不可在字典中执行,因为key是字符串

get():找到指定的键的值

>>>d.get('one')

1

如果

>>>d.get('ok')

                因为key不存在

>>>d.get('ok',0)

0        如果不存在则为0

 

函数

dea9fd06a47e4e2ba07b0c007f888334.png

 自定义一个函数

def 函数名(参数表):

        函数体

 aa18fcb9d3c34a4dbca06e18d1e37c74.png

 lambda用来编写简单的函数

def用来处理更强大任务的函数

 

sin():是一个math函数库里的自带函数,使用时要输入import

练习:定义函数y=sin(x)+1

>>>import.math

>>>def f(x):

>>>        y=math.sin(x)+1

>>>        return y

>>>y=f(3.5)

>>>print(y)

y的结果

函数参数

d907aea34554453aa1a90668c1b074cd.png

 

901c5e92a9954ca085dc1e3ae9674e78.png

print(dis(1,3,4,5))里的1,3,4,5为位置参数

 

b635f97da81a4343be3ff1f59ba16e10.png

 x1=1,y2=5为关键字参数

 

aa8f6babce6c48858198e796a2bbbab9.png

要注意先写位置参数再写关键词参数!!!

 

55661d0306f4485c94c728f3713a82cf.png

星号*将一组可变数量的位置参数集合成参数值的元组

a分别给到3和5        b分别给到(7,9)和(8,1,6,89)

 

0ab58b6ea5de44a7a6894413a981d8af.png

 **两个星号表示收集参数到字典中

 

c1fcb3b3b5824adc90a58b06e6930d3e.png

 

 

 70ad21302eb04b35801ba674e516a442.png

*在列表前面,将其中实参拆出来

 b18a309f30944d33adca8c4445361a96.png

 可变对象和不可变对象当参数时,效果可能不同

当实参是不可变对象时,形参值改变不会影响实参

当实参是可变对象时,形参值改变可能会影响实参

f352bf9b1c354476bde9595dafb4721f.png

 函数的返回值

b9deb04163354917b0933634285a177c.png

概念

10f9490081a341acadfcc07fa9b352ec.png

 

局部变量与全局变量66cf1bdeb1e14f8389cbc6f2f9bb2fd4.png

python中赋值即定义

当局部变量与全局变量同名

def scope():

        var1=1        局部变量

        print('函数内部打印结果')

        print(var1,var2)

var1=10        全局变量

var2=20        全局变量

scope()

print('函数外部打印结果')

print(var1,var2)

 如希望在函数中使用全局变量,而不是创建局部变量,就用global关键字声明

def scope():

        global var1        声明var1接下来为全局变量

        var1=1        局部变量

        print('函数内部打印结果')

        print(var1,var2)        结果1,20

var1=10        全局变量

var2=20        全局变量

scope()

print('函数外部打印结果')        结果1,20        因为前面已经声明var=1了

print(var1,var2)

案例

x=100

def f():

        y=x        全局变量不关局部的事,这里没有定义局部变量x的值,于是出现错误

        x=0

        print(x)

f()

 递归

42a1475f5e0b40eaa40848781a7660e1.png

递归需要终止条件和递归条件

终止条件不满足时,递归前进

条件满足时,递归返回 

编写递归函数时,必须告诉它何时停止递归,从而避免形成无限循环

028d7aa3a97344438a31531691fc7026.png

 37f535b4b5ad4b02a7e8bce6cd56259f.png

 189a40b32c0448f683f98c31dc463a97.png

例题4b18617bf5bb4bcc8436227039e2878c.png

 内置函数

d1958744bda440a9be49fb59ee1861fa.png

 c28f0b0d36554c7da7ec70db34f888cb.png

597e4e50520a40819b1ca3fbe29a75a0.png

 >>>students=[('江幸',89,15),('方鹏',80,14),('陈可',85,14)]

>>>print(sorted(students.key=lambda s:s[2]))        按年龄从小到大排序

[('方鹏',80,14),('陈可',85,14),('江幸',89,15)]

>>>print(sorted(students.key=lambda s:s[1),reverse=Ture)        按成绩从大到小降序 

map函数

 cefe4b2549a142de9ccf81a3b521dfcc.png

举例 

ef7ce113cff4429186ba67ea0cf39d04.png

zip函数4e6068446b3f4d758c6acba06e241d2a.png

举例

f2329775897a4b1f992c864766a1a6be.png

字典键值互换

>>>d={'blue':500,'red':100,'white':300}        值不同

>>>d1=dict(zip(d.values(),d.keys())

>>>print(d1)

{500:'bule',100:'red',300:'white'}

eval和exec函数 

120895513c9b468589707d04db882139.png

 举例

b4889038e5e64b368720d7971211fe92.png

eval的作用就是将'x+3*y-4'的引号去掉,直接执行里面的语句

exec的作用就是将“hello world"的引号去掉,直接执行里面的语句

all和any函数 

f02c14a5b19b4b4ca82fcb9d82c4c9b0.png

举例

8126284ac85f4b19a0f62a41fd1532a6.png

[]和0都代表False

程序结构

import 模块名

模块名是另外一个python文件的文件名,不包含扩展名,模块是可以运行的程序

”import 模块名"就是执行文件名为模块名的程序

引入模块中函数的另一种方法

from 模块名 import *

直接引入所有函数,调用时不需要再加模块名

from 模块名 import 函数名

引入模块中单个函数,调用时也不需要再加模块名

04da0eeff2c7484aa4e9ac6058176cb1.png

模块名字空间

b6379a0008eb4dc29a2d26dfd41d9de7.png

dir(模块名):显示模块内容

a4b47f6978da4176b3adbf389872d9f0.png

包是一个目录,包含一组模块文件和一个init.py文件

import 包名.模块名        导入包中模块

包名.模块名.函数        调用函数 

 

sys模块 

e427dd3f169e486aa2cc9e59ce713a73.png

常用量 

65d8529e91f3486ab41128ba876a0ebf.png

sys函数的返回值是字符串,如果要返回整数,前面需要加int()

1879abffb09b478996bf37fc85dceac8.png

 

02041b8efb4d417490a90f01acef08a9.png

 

文件读写操作

计算机文件:是储存在某种长期储存设备上的一段数据流

类型:二进制文件文本文件

图形文件及文字处理程序等计算机程序都属于二进制文件

文本文件是可以用文字处理程序阅读的简单文本文件

读写步骤:

1.打开文件        2.处理数据        3.关闭文件

readline():读取文件内容返回字符中

 

显示文件内容:

有一个记事本为"7-1.txt"

textFile=open("7-1.txt","rt")        以文本方式打开

t=textFile.readline()        读取文本内容

print(t)

textFile.close        将文本关闭

binFile=open("7-1.txt","rb")        以二进制方式打开

b=binFile.readline()

print(b)

binFile.close()

open函数

 

71dc281cae5c476baa18150a371b2f86.png

文件打开模式 

a881dd720e794c078cac7bd8f4a1424f.png

文件读写函数

c9f2c2b358864ac8a0f6921ac309aecd.png

例子

af35b6d5385e4c9f85e7b954d59c0e6e.png

多行文件读写

用readlines()读写多行文件

f=open("score.txt","r")

for line in f.readlines():

                print(line)        处理行

f.close()

可用嵌套列表存放多行内容

 

例子

0dc2379e3d06444b971d3b974ec4a438.png

 

 b465eab627194f04985e3f9ba49773f8.png

 

输入输出重定向

f08b1147d76b4695bdbca49db5b773ef.png

 973a51add4164867a138b79c9bd23cdc.png

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值