首页 > 代码库 > 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使用加号+来合并字符串
|
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
- Beautiful is better than ugly.
- Explicit is better than implicit.
- Simple is better than complex.
- Complex is better than complicated.
- Flat is better than nested.
- Sparse is better than dense.
- Readability counts.
- Special cases aren‘t special enough to break the rules.
- Although practicality beats purity.
- Errors should never pass silently.
- Unless explicitly silenced.
- In the face of ambiguity, refuse the temptation to guess.
- There should be one-- and preferably only one --obvious way to do it.
- Although that way may not be obvious at first unless you‘re Dutch.
- Now is better than never.
- Although never is often better than *right* now.
- If the implementation is hard to explain, it‘s a bad idea.
- If the implementation is easy to explain, it may be a good idea.
- Namespaces are one honking great idea -- let‘s do more of those!
Python基础学习总结(一)