首页 > 代码库 > Python基础学习总结(一)

Python基础学习总结(一)

1、变量和数据类型

1.1变量

1.每个变量都存储了一个值——与变量相关联的信息。

2.变量不仅可以为整数或浮点数,还可以是字符串,可以是任意数据类型。

1.1.1变量的命名和使用

变量名只能包含字母、数字和下划线,且数字不能打头。变量名不能包含空格,但可以使用下划线间隔。不能把python关键字和函数名作为变量名。变量名应既简短又具有描述性。慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

1.1.2使用变量时避免命名错误

出现错误时解释器会提供一个traceback(回溯)。Traceback是一条记录,指出了什么地方陷入困境。

1.2字符串str

1.字符串就是一系列字符。是一种数据类型,在Python中用引号括起的都是字符串,可单引号也可双引号

2.Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。把Unicode编码转化为“可变长编码”的UTF-8编码。

3.Python对bytes类型的数据用带b前缀的单引号或双引号表示:x = b‘ABC‘。以Unicode表示的str通过encode()方法可以编码为指定的bytes。

‘ABC‘.encode(‘ascii‘)

b‘ABC

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

b‘ABC‘.decode(‘ascii‘)

‘ABC

4. 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

>>> ord(‘A‘)

65

>>> ord(‘中‘)

20013

>>> chr(66)

‘B‘

>>> chr(25991)

‘文‘

5.要计算str包含多少个字符,可以用len()函数,len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数。可见,1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。

1.2.1对字符串的操作

1.方法是Python可对数据执行的操作。

2.title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。

3.upper()将字符串改为全部大写。lower()将字符串改为全部小写。

4.如果字符串至少有一个字母,并且所有字母都是大写或小写,isupper()和 islower()方法就会相应地返回布尔值 True。否则,该方法返回 False。

5.salpha()返回 True,如果字符串只包含字母,并且非空;

6.isalnum()返回 True,如果字符串只包含字母和数字,并且非空;

7.sdecimal()返回 True,如果字符串只包含数字字符,并且非空;

8.sspace()返回 True,如果字符串只包含空格、制表符和换行,并且非空;

9.istitle()返回 True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。

10.startswith()和 endswith()方法返回 True,如果它们所调用的字符串以该方法传入 的字符串开始或结束。否则,方法返回 False。

11.join()方法在一个字符串上调用,参数是一个字符串列表,返回一个字符串。

>>> ‘, ‘.join([‘cats‘, ‘rats‘, ‘bats‘])

‘cats, rats, bats‘

>>> ‘ ‘.join([‘My‘, ‘name‘, ‘is‘, ‘Simon‘])

‘My name is Simon‘

 >>> ‘ABC‘.join([‘My‘, ‘name‘, ‘is‘, ‘Simon‘])

‘MyABCnameABCisABCSimon‘

12.split()方法做的事情正好相反:它针对一个字符串调用,返回一个字符串列表。也可以向split()方法传入一 个分割字符串,指定它按照不同的字符串分割。

>>> ‘My name is Simon‘.split()

[‘My‘, ‘name‘, ‘is‘, ‘Simon‘]

13.rjust()和 ljust()字符串方法返回调用它们的字符串的填充版本,通过插入空格来 对齐文本。这两个方法的第一个参数是一个整数长度,用于对齐字符串。rjust()和 ljust()方法的第二个可选参数将指定一个填充字符,取代空格字符。

>>> ‘Hello‘.rjust(20, ‘*‘)

‘***************Hello‘

 >>> ‘Hello‘.ljust(20, ‘-‘)

‘Hello---------------‘

14.center()字符串方法与 ljust()与 rjust()类似,但它让文本居中,而不是左对齐或右对齐。

15.sort()将字符串排序。

16.请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

17.合并——Python使用加号+来合并字符串

  1. first_name = "ada" 
  2. last_name = "lovelace" 
  3. full_name = first_name + " " + last_name 
  4. print(full_name)
  5. ada Lovelace

18.可以在字符串开始的引号之前加上 r,使它成为原始字符串。 “原始字符串”完 全忽略所有的转义字符,打印出字符串中所有的倒斜杠。

>>> print(r‘That is Carol\‘s cat.‘)

 That is Carol\‘s cat.

19.删除空白:方法rstrip()右   lstrip()左   strip()两边

20. 语法错误:是一种时不时会遇到的错误,在用单引号括起的字符串中,如果包含撇号,就将导致错误。双引号不会。

21.Print() 打印,逗号会空一格。

22.pyperclip 模块有 copy()和 paste()函数,可以向计算机的剪贴板发送文本,或从 它接收文本。

23.字符串有个replace()方法

>>> a = ‘abc‘

>>> a.replace(‘a‘, ‘A‘)

‘Abc‘

1.2.2空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

1.2.3常量

常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:PI = 3.14159265359

1.2.4赋值

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量:

a = 123 # a是整数

print(a)

a = ‘ABC‘ # a变为字符串

print(a)

赋值语句:a, b = b, a + b

t = (b, a + b) # t是一个tuple

a = t[0]

b = t[1]

1.2.5格式化

Python中格式化有两种,第一种用%实现,第二种{ } format格式。

‘Hello, %s‘ % ‘world’

% 运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。常用占位符:

%d  整数

%f  浮点数

%s  字符串

%x  十六进制整数

 

其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

>>> ‘%2d-%02d‘ % (3, 1)

‘ 3-01‘

>>> ‘%.2f‘ % 3.1415926

‘3.14‘

如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串。

有些时候,字符串里面的%是一个普通字符,需要转义,用%%来表示一个 % 。

第二种格式化方法,format,通过 {} 来代替 % 。

1、正常使用

>>> print("我叫{},今年{}岁了".format("小李", 20))

我叫小李,今年20岁了

2、还可以通过在括号里填写数字,修改格式化的顺序

>>> print("我叫{1},今年{0}岁了".format("小李", 20))

我叫20,今年小李岁了

3、通过key取变量

>>> print("我叫{name},今年{age}岁了".format(name="小李", age=20))

我叫小李,今年20岁了

1.2.6转义字符

空白——泛指任何非打印字符,如空格、制表符和换行符。

转义字符\可以转义很多字符 \t 制表符    \n 换行

字符\本身也要转义,所以\\表示的字符就是\

如果字符串里面有很多字符都需要转义,Python中可以用r‘‘表示‘‘内部的字符串默认不转义:

>>> print(‘\\\t\\‘)

\       \

>>> print(r‘\\\t\\‘)

\\\t\\

1.3数字

1.3.1整数 int

可以进行四则运算。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等。

整数的除法是精确的。在Python中,有两种除法,一种除法是/ , /除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数。还有一种除法是//,称为地板除,两个整数的除法仍然是整数。

% 取余数。

1.3.2浮点数float

Python将带小数的数字都称为浮点数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。

对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等。

1.3.3使用函数str()避免错误

数据类型检查可以用内置函数isinstance()实现:

def my_abs(x):

    if not isinstance(x, (int, float)):

        raise TypeError(‘bad operand type‘)

    if x >= 0:

        return x

    else:

        return -x

1.4注释

1. 以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

#。。。。。。

2.由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

3.文档字符串的注释   ”””      ”””

1.5Python之禅

The Zen of Python, by Tim Peters

  1. Beautiful is better than ugly.
  2. Explicit is better than implicit.
  3. Simple is better than complex.
  4. Complex is better than complicated.
  5. Flat is better than nested.
  6. Sparse is better than dense.
  7. Readability counts.
  8. Special cases aren‘t special enough to break the rules.
  9. Although practicality beats purity.
  10. Errors should never pass silently.
  11. Unless explicitly silenced.
  12. In the face of ambiguity, refuse the temptation to guess.
  13. There should be one-- and preferably only one --obvious way to do it.
  14. Although that way may not be obvious at first unless you‘re Dutch.
  15. Now is better than never.
  16. Although never is often better than *right* now.
  17. If the implementation is hard to explain, it‘s a bad idea.
  18. If the implementation is easy to explain, it may be a good idea.
  19. Namespaces are one honking great idea -- let‘s do more of those!

Python基础学习总结(一)