Python 学习笔记

 1,python是什么类型的语言?

Python是一种面向对象、解释型、动态类型计算机程序设计语言
解释型:程序无需编译成二进制代码,而是在执行时对语句一条一条编译
动态类型:在程序执行过程中,可以改变变量的类型
它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起

 

2.BIF(Build-in-functions)内置函数,Python一共有68个内置函数

dir(__buitins__) 查看Python里面的内置函数

help(内置函数名称) 查看内置函数的作用和用法

3,在字符中打印引号,用/”输出引号

4IDLE是一个Python shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。

5,设置你的操作系统的环境变量,以便可以轻松进入Python环境

 

 

Python特设变量

使用变量之前,要对变量赋值

变量名不能以数字开头,变量名可以包括字母,数字,下划线

最好给变量取一个专业一点的名字

字符串(文本)

‘5’+’8’=’58’

打印’Let\'s go'

"Let's go"

打印:C:\nom

‘C:\\now’

原始字符串:在字符串前面加一个r,比如: r’C:\now’

注意原始字符串结尾不能加反斜杠‘\’

三重引号字符串:str="""abcd"""

>>> str

'\na\nb\nc\nd'

>>> print(str)

a

b

c

d

条件分支

if 条件:

else:

while 条件:

引入外援

random模块

randint()会返回一个随机的整数

6,快捷键

Alt+N:把上面的语句复制

Alt+P: 把下面的语句复制

7,逻辑操作符:

3<4 and 4>5  等价于 3<4<5 两种都可以实现

                  or

                 not         

第五节 数据类型:

整型

浮点型

布尔类型 (bool):True 、False

e记法:科学计数法(不是数据类型)1.5e11是浮点型 

8,类型转换

int()     int(5.99)=5

float()  float(520)=520.0

str()    str(5.99)=’5.99’

9,type(a)得到a的数据类型

   isinstance()

10,算数操作符

10//8=1

10/8=1.25

幂运算:3**3=27

-3**2=-9

优先级:**

11,条件操作符

elif = else if

悬挂else:else与if同一个缩进

三元操作符:

if x<y

   Small=x;

else

   Small=y;

等价于:small=x  if x<y  else y

断言(assert):当关键字后边的条件为假时,程序自动崩溃并抛出AssertionError的异常

for循环:

for 目标 in  表达式:

     循环体

range():生成一个数列start到stop默认步长为1

Range([start,] stop [,step=1])中括号中的参数可以省略

break :终止循环并跳出循环

continue :终止本轮循环并开始下轮循环

12,列表

普通列表

混合列表mix=[1,3,14,’xiaojiayu’,[1,2,3]]

空列表empty=[];

向列表添加元素:

append()把元素添加到列表尾,只能添加一个参数

mix.append(‘小平’)

extend():以一个列表作为参数,可以添加多个参数

mix.extend([‘xiaoping’,’xiaojiayu’])

insert():有两个参数,添加的元素和添加的位置

mix.insert(‘小平’,0)放在列表头

number[i]:从列表中获取第i个元素

number.remove(‘小平’)从列表中删除’小平’元素

del语句:del number [i] 或者 del number (删除这个列表)

number.pop():返回最后一个元素

number.pop(i):返回列表中第i个元素

列表分片:number[i : j]拷贝列表中第i个元素到第j-1个元素

          number[ : j]拷贝列表中第0个元素到第j-1个元素

     number[i : ]拷贝列表中第i个元素到最后一个元素

注:原列表不发生变化

countnumber.count(‘小平’)

index:number.index(‘小平’)

number.index(‘小平’,起始位置,结束位置)

reverse:number.reverse()

sort:number.sort(func,key,reverse)用指定的方式(func)对列表进行排序

func、key是默认的一般不考虑

reverse =false是默认的,reverse=true逆置

copylist1=list2对list2进行操作时,list1跟着变化

list1=list2[ : ](分片)对list2进行操作是,list1不会变化

13,元组

元组里面元素不能修改!

创建和访问一个元组:tuple1=(1,2,3,4,5,6,7,8)或者tuple1=1,2,3,4,5,6,7

temp =(1)是一个整型数据,temp=(1,)是一个元组数据

8*(1,)=(1,1,1,1,1,1,1,1)

更新和删除一个元组:temp=(1,2,3,4,6,7,8)

temp=temp[:5]+(5,)+temp[5:]

del temp

 

14,字符串

(链接:http://bbs.fishc.com/thread-38992-1-1.html)

str.capitalize():字符串首字母大写

str.casefoid():将字符串所有字母变成小写

center(width):将字符串居中,并使用空格填充至长度width的新字符串

count(sub,[start,[end]]):返回sub在字符串里边出现的次数,start和end参数表示范围,[]表示参数可以省略

 Endswith(sub,[start,[end]]):检查字符串是否以sub子字符串结束,如果是返回true,否则返回false,start和end参数表示范围,可选

Expandtabs([tabsize=8]) :把字符串中的tab符号(\t)转换为空格,如不制定参数,默认的空格数死tabsize=8

Find(sub,[start,[end]]) :检查sub是否包含在字符串中,如果有则返回索引值,否则返回-1

Index(sub,[start,[end]])):跟find方法一样,不过如果sub不在string中会产生一个异常

Isalnum():如果字符串至少有一个字符并且所有字符都是字符或数字则返回true

Isalpha()如果字符串

Isnumeric()

Isdigit()

Isspace()

Istitle()

Isupper()

Join(sub):以字符串

Ljust(width)

Lower()

Lstrip()

Partition()

Replace(old,new,[count])

rfind(sub,[start,[end]]):从右边开始查找

Rindex(sub,[start,[end]])

Split()

Rpatiton(sub)

Rstrip()

Splitlines

Startwith(prefix,[start,[end]])

Strip([chars])

Swapcase():反转字符串大小写

Title():返回标题化的字符串

Translate(table):根据table的规则

Upper()

Zfill(width):

 

15,字符串格式化

format:”{0} love {1}.{2}”.format(“I”,”fishc”,”com”)=I love fishc.com

”{a} love {b}.{c}”.format(a=“I”,b=”fishc”,c=”com”)=I love fishc.com

”{0} love {b}.{c}”.format(“I”,b=”fishc”,c=”com”)=I love fishc.com

“{0:.1f} {1}”.format(23.56,’GB’)=’23.6GB’

字符串格式化符号含义:

%c

%d

%o 格式化无符号八进制数

%s

%x 格式化无符号十六进制数  ’%x’ % 10=’a’

%X

%f   ‘%f’ % 27.658=’27.658000’

%e  ‘%e’ % 27.658=’2.765800e+01’

%E

%g

%G

 

格式化操作辅助指令

m.n  m是显示的最小总宽度,n是小数后的位数,m可以省略

- 用于左对齐

+ 在正数前面显示加号

# 在八进制数前面显示零(‘/0’),在十六进制数前面显示(‘0x’)

0 显示的数字前面填充’0’取代空格

16,序列

List():把一个可迭代对象转换为列表

Tuple():把一个可迭代对象转化为元组

Str(obj):把obj对象转换为字符串

Len(sub):返回sub的长度

Max():返回参数里面的最大值,参数可以是一个元组、队列

Min():返回参数里面的最小值

Sum(interable[,start=0]):

Sorted():返回有序的队列

Reversed():返回一个迭代器列表

Enumerate():

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

>>> enumerate(number)

<enumerate object at 0x03377BE8>

>>> list(enumerate(number))

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

Zip():

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

>>> b=[4,5,6,7,8]

>>> zip(a,b)

<zip object at 0x03378B20>

>>> list(zip(a,b))

[(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]

17,函数

定义:def MyFirstFunction():

函数内容。。。。

调用:MyFirstFunction()

函数的参数:

函数返回值:return

形参和实参:

函数文档:相当于注释,但可以通过 ’函数名.__doc__’ 或者help(函数名)打印

关键字参数:def Sayname(name,word):

Print(name’->’ word)

Sayname(word=‘123’,name= ’345’)

345->123

默认参数:定义了默认值的参数

def Sayname(name=’123’,word=’234’):

Print(name’->’ word)

Sayname()

123->234

Sayname(word=‘小甲鱼’,name= ’345’)

345->小甲鱼

 

收集参数(可变参数)

 >>>def test(*params):

      print('参数的长度是',len(params))

      print('第二个参数是',params[1])

>>> test(1,2,3)

参数的长度是 3

第二个参数是 2

 

如果后面还有参数时,设置为默认参数或者如下

> def test(*params,exp):

      print('参数的长度是',len(params),exp)

      print('第二个参数是',params[1])

>>> test(1,2,3,4,5,6,exp=8)

参数的长度是 6 8

第二个参数是 2

 

 

 

 

 

 

18,内嵌函数:

闭包:

eg1:

>>> def FunX(x):

      def FunY(y):

            return x*y

      return FunY

>>> i=FunX(8)

>>> i

<function FunX.<locals>.FunY at 0x02E134F8>

>>> type(i)

<class 'function'>

>>> FunX(8)(5)

40

 

 

 

eg2:

>>> def Fun1():

      x=5

      def Fun2():

            x*=x

            return x

      return Fun2()

 

>>> Fun1()

Traceback (most recent call last):

  File "<pyshell#37>", line 1, in <module>

    Fun1()

  File "<pyshell#36>", line 6, in Fun1

    return Fun2()

  File "<pyshell#36>", line 4, in Fun2

    x*=x

UnboundLocalError: local variable 'x' referenced before assignment

>>> def Fun1():

      x=[5]

      def Fun2():

            x[0]*=x[0]

            return x[0]

      return Fun2()

 

>>> Fun1()

25

>>> def Fun1():

      x=5

      def Fun2():

            nonlocal x*=x

            return x

      return Fun2()

SyntaxError: invalid syntax

>>>

>>> def Fun1():

      x=5

      def Fun2():

            nonlocal x

            x*=x

            return x

      return Fun2()

 

>>> Fun1()

25

>>>

Global :把局部变量变成全局变量

Global count=10;

 

 

19,匿名函数:

Lambda语句:g=lambda x:2*x+1

g(3)

g=lambda x,y:x+y

g(3,4)

filter 过滤器

>>> list(filter(None,[1,0,False,True]))

[1, True]

过滤掉奇数:

>>> def odd(x):

      return x%2

 

>>> temp=range(10)

>>> show=filter(odd,temp)

>>> list(show)

[1, 3, 5, 7, 9]

或者

>>> list(filter(lambda x:x%2 ,range(10)))

[1, 3, 5, 7, 9]

>>>

 

map():

>>> list(map(lambda x: x*2 ,range(10)))

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

 

20,递归

>>> def jiecheng(x):

      if x==0:

            return 1;

      else:

            return x*jiecheng(x-1)

>>> jiecheng(3)

6

21,创建字典

关键字:dict

     dict() -> new empty dictionary

 |  dict(mapping) -> new dictionary initialized from a mapping object's

 |      (key, value) pairs

 |  dict(iterable) -> new dictionary initialized as if via:

 |      d = {}

 |      for k, v in iterable:

 |          d[k] = v

 |  dict(**kwargs) -> new dictionary initialized with the name=value pairs

 |      in the keyword argument list.  For example:  dict(one=1, two=2)

>>> dict1=dict({('F',1),('i',2),('s',3),('h',4)})

>>> dict1

{'h': 4, 'i': 2, 's': 3, 'F': 1}

>>> dict2=dict(a='1',b='2',c='3')

>>> dict2

{'c': '3', 'a': '1', 'b': '2'}

>>> dict2['a']='4'

>>> dict2

{'c': '3', 'a': '4', 'b': '2'}

>>> dict2['d']='5'

>>> dict2

{'c': '3', 'd': '5', 'a': '4', 'b': '2'}

 

 

Fromkeys():创建一个新的字典

>>> dict1={}

>>> dict1.fromkeys({1,2,3})

{1: None, 2: None, 3: None}

>>> dict1.fromkeys({1,2,3},'number')

{1: 'number', 2: 'number', 3: 'number'}

>>> dict1.fromkeys({1,3},'数字')

{1: '数字', 3: '数字'}

访问字典的几个方法:

Keys() :打印每个项的key

Values():打印每个项的对应的值

Items():以元组的形式打印每个项

 

>>>dict1={}

>>> dict1=dict1.fromkeys(range(30),'赞')

>>> print(dict1.get(32))

None

>>> dict1.get(32,'莫有')

'莫有'

 

 

In ,not in

>>> 31 in dict1

False

>>> 20 not in dict1

False

>>>

clear

>>> dict1.clear()

>>> dict1

{}

Copy()

>>> a={1:'one',2:'two'}

>>> a

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

>>> b=a.copy()

>>> c=a

>>> b

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

>>> c

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

>>> id(a)

54487720

>>> id(b)

6304592

>>> id(c)

54487720

 

 

 

Pop(),popitem(),update()

>>> a.pop(2)

'two'

>>> a

{1: 'one'}

>>> a.popitem()

(1, 'one')

>>> a

{}

>>> a={1:'one',2:'two'}

>>> a.setdefault(5,'f')

'f'

>>> a

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

>>> b={'小白':'狗'}

>>> a.update(b)

>>> a  

{1: 'one', 2: 'two', 5: 'f', '小白': '狗'}

 

22,集合

唯一性:

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

>>> num2

{1, 2, 3, 4, 5}

不支持索引:

Num2[2]是错误的

创建一个集合:

Set()括号里可以是元组,队列,字符串

>>> set1=set([1,2,3,4,5,6,5])

>>> set1

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

>>> set1=set((1,2))

>>> set1

{1, 2}

>>> set1=set('1234')

>>> set1

{'1', '4', '2', '3'}

 

可以用集合帮助队列除掉重复的元素,注意处理后输出的队列已进行从大到小的排序

>>> num1=[1,2,0,3,4,3,5,4]

>>> num1=list(set(num1))

>>> num1

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

访问集合中的值

>>> num2

{1, 2, 3, 4, 5}

>>> 1 in num2

True

Add方法

>>> num2.add(6)

>>> num2

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

Remove方法

>>> num2.remove(5)

>>> num2

{1, 2, 3, 4, 6}

 

不可变集合

frozenset

>>> num3=frozenset([1,2,3,4,5])

>>> num3.add(0)是错误的

 

23,文件

Open

F=open(‘文件路径G:\\test.txt’,’打开模式’)

文件打开模式:

    'r'       open for reading (default默认)

    'w'       open for writing, truncating(覆盖) the file first

    'x'       create a new file and open it for writing

    'a'       open for writing, appending to the end of the file if it exists

    'b'       binary mode

    't'       text mode (default默认)

    '+'       open a disk file for updating (reading and writing)

    'U'       universal newline mode (deprecated)

文件对象方法:

F.close()

F.read(size)

F.tell():返回当前文件指针的位置

F.seek(offset,from)在文件中移动指针,从from(0代表文件起始位置,1代表文件当前位置,2代表文件末尾)偏移offset个字节

F.readline():以写入模式打开,如果文件存在,则在末尾追加写入

F.write(str):将字符串str写入文件,返回字符串的长度

F.writeline(seq):向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象24,模块:

>>> os.path.join('C:\\','A','B','C')

'C:\\A\\B\\C'

全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务