代码编码:
1
、国际惯例,文件编码和
Python
编码格式全部为
utf-8
,例如:在
Python
代码的开头,要统一加上
# -- coding: utf-8 --
。 2、
Python 代码
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
空格
运算符两侧和函数参数之间建议使用空格进行分割
括号内两侧不要有空格
不要在逗号、分号、冒号前面有空格,但应该在它们后面加(除了在行尾)
当
=
用于指示关键字参数或默认参数值时,不要在其两侧使用空格
避免使用不必要的空格,不要为了对齐增加空格
注释
总体原则:错误的注释不如没有注释,当一段代码发生变化时,第一件事就是修改注释
注释使用中文或者英文,最好是完整的句子,首字母大写,句后就有结束符,结束符后跟两个空
格,开始下一句。如果是短语,可以省略结束符
单行注释:在代码上面使用
#
加文字注释
多行注释:使用三双引号或者三单引号,引号中是注释的内容
保留字
保留字即关键字,不能作为任何标识符的名称
Python
的标准库提供了一个
keyword
模块,可以输出当前版本的所有关键字
命名规范
函数命名尽量短小并且使用小写字母,如果想提高可读性可以用下划线分割
类名采用单词首字母大写的驼峰式命名方法,例如
GetMoney
,
History
等
使用单下划线开头的模块变量或者函数是受保护的,在使用
import * from
语句从模块中导入时这
些变量或者函数不能被导入
不要使用字母
l
、
O
、
I
作为单字符变量名,易混淆
缩进
每级缩进使用
4
个空格,在冒号换行后一定要跟一个缩进,不然会出现语法错误
连续行应该对齐折叠元素,无论是垂直的隐式行连接,还是使用悬挂缩进(第一行没有参数并且使
用更多的缩进来区别它本身和连续行
变量
name = value
name表示变量名, value表示值,也就是要储存的数数据
注意: 变量名是标识符的一种,名字不能随便起,报遵守python标识符命令规则,避免和python内置函数以
及保留字冲突
n = 95
n = 100
n = '你好世界'
print(n)
# 变量的值一旦修改,之前的值就被覆盖了,也就是变量只能容纳一个值
# 将变量的结果赋值给变量
n = 50+30
r = 50+50-n
print(n)
print(r)
数字类型
Python
中数字类型有
4
种,分别是整型
int
、浮点型
float
、复数型
comlex
、布尔型
bool
。本
文为大家介绍整型、浮点型两种类型。
1.整型 int
在
Python
中,整型数用关键字
int
表示(即英文单词
integer
的简写),包括:正整数、零和负
整数。整型数全部由数字构成,不包括小数部分。
Python
中的整型
没有取值范围的限制
。
a = 199
b= -199
c = 1999999999999999999999999999999
d = -199999999999999999999999999999
print(a,b)
print(c,d)
print(type(a),type(b),type(c),type(d))
2.浮点型 float
在
Python
中,浮点型用关键字
float
表示,是由整数、小数点和小数构成的数字。
3.复数类型
复数类型表示数学中的复数。复数有一个基本单位元素
j
,叫做
“
虚数单位
”
。含有虚数单位的数称为复数。
a = 12 + 13j
b = complex(12, 13)
print(a)
print(b)
print(type(a), type(b))
4.布尔型
布尔型(
bool
),使用
True
和
False
关键字,分别表示真或假,分别对应的值为
1
和
0
,也可以使用bool值做运算
a = True # 1
b = False # 0
c = True # 1
print(a)
print(b)
print(a + b + c)
print(type(a), type(b))
5.算数运算符
运算符
|
说明
|
实例
| 结果 |
+
|
加
|
12.45 + 15
|
27.45
|
-
|
减
|
4.56 - 0.26
|
4.3
|
*
|
乘
|
5 * 3.6
| 18.0 |
/
|
除法(和数学中的规则一样)
|
7 / 2
| 3.5 |
//
|
整除(只保留商的整数部分)
|
7 // 2
| 3 |
%
|
取余,即返回除法的余数
|
7 % 2
| 1 |
**
|
幂运算
/
次方运算,即返回
x
的
y
次方
|
2 ** 4
| 16,即 2⁴ |
6.数学运算
Python
中数学运算常用的函数基本都在
math
模块。
math
模块提供了许多对浮点数的数学运算函数。
import math
print(abs(-10)) # 返回数字的绝对值
# 10
print(math.ceil(15.3)) # 返回数字的上入整数
# 16
print(math.floor(15.3)) # 返回数字的下舍整数
# 15
print(math.exp(2)) # 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
# 7.38905609893065
print(math.fabs(-15)) # 返回数字的绝对值,结果为float类型
# 15.0
# max() # 返回给定参数的最大值,参数可以是序列
# min() # 返回给定参数的最小值
a = 1, 2, 3, 4, 5
print(max(a))
print(min(a))
字符串类型
字符串的定义
字符串是一个有序的字符集合,用来存储和表现基于文本的信息。
python
中字符串需要使用成对的单引号或双引号括起来,单引号和双引号的字符串是等效的,三引号用于字符串时,可以换行,实行块结构。
字符串格式化
字符串格式化是我们在使用
Python
中经常用到的功能。
Python
为我们提供了三种格式化字符串的方法,
分别是
%
占位符、字符串
format
方法、格式化字符串字面值
.
处理字符串中的引号的
当字符串内容中出现引号时,需要进行特殊处理,否则
Python
会解析出错,例如:
'I'm a good man!'
由于上面字符串中包含了单引号,此时
Python
会将字符串中的单引号与第一个单引号配对,这样
就会把
'I'
当成字符串,而后面的
m a great coder!'
就变成了多余的内容,从而导致语法错
误。
解决方法:
1) 对引号进行转义
在引号前面添加反斜杠
\
就可以对引号进行转义,让
Python
把它作为普通文本对待,例如:
str1 = 'I\'m a good man!'
print(str1)
2) 使用不同的引号包围字符串
如果字符串内容中出现了单引号,那么我们可以使用双引号包围字符串,反之亦然。例如:
str1 = "I'm a great coder!" #使用双引号包围含有单引号的字符串
print(str1)
字符串的换行
Python
不是格式自由的语言,它对程序的换行、缩进都有严格的语法要求。要想换行书写一个比
较长的字符串,必须在行尾添加反斜杠
\
,请看下面的例子:
s2 = 'It took me six months to write this Python tutorial. \
Please give me more support. \
I will keep it updated.'
上面
s2
字符串的比较长,所以使用了转义字符
\
对字符串内容进行了换行,这样就可以把一个长
字符串写成多行。
同时也支持表达式的换行,例如:
num1 = 20 + 3 / 4 + \
2 * 3
print(num1)
Python原始字符串
Python
字符串中的反斜杠
\
有着特殊的作用,就是转义字符
.
转义字符有时候会带来一些麻烦,例如我要表示一个包含
Windows
路径 D:\Program Files\Python 3.8\python.exe
这样的字符串,在
Python 程序中直接这样写肯定是不行的,不 管是普通字符串还是长字符串。因为
\
的特殊性,我们需要对字符串中的每个
\ 都进行转义,也就 是写成
D:\\Program Files\\Python 3.8\\python.exe
这种形式才行。
这种写法需要特别谨慎,稍有疏忽就会出错。为了解决转义字符的问题,
Python 支持原始字符串。在原始字符串中,
\
不会被当作转义字符,所有的内容都保持
“
原汁原味
”
的样子。
在普通字符串或者长字符串的开头加上
r
前缀,就变成了原始字符串,具体格式为:
str1 = r'原始字符串内容'
str2 = r"""原始字符串内容"""
str3 = r'D:\Program Files\Python 3.8\python.exe'
print(str3)
切片
-
字符串切片:
s = "hello" print(s[1:4]) # 输出 "ell" print(s[::2]) # 输出 "hlo",每隔一个字符取一个
-
列表切片:
lst = [1, 2, 3, 4, 5, 6] print(lst[1:4]) # 输出 [2, 3, 4] print(lst[::-1]) # 输出 [6, 5, 4, 3, 2, 1],反转列表
几点注意事项:
- 切片操作不会修改原始序列,而是返回一个新的子序列。
- 切片操作的时间复杂度是O(k),其中k是切片的长度,因为Python需要创建一个新的序列来存储切片结果。
- 切片操作中的索引可以是负数,表示从序列的末尾开始计数。例如,
-1
表示最后一个元素,-2
表示倒数第二个元素,依此类推。
例如,使用负数索引进行切片:
s = "hello"
print(s[-1]) # 输出 "o"
print(s[-3:]) # 输出 "llo",从倒数第三个元素开始到末尾
url = '人生苦短,我用python,不掉丢发哈'
#获取索引从4处到10(不包含10)的子串
print(url[4: 10]) # 输出 ,我用pyt
#获取索引从7处到-6的子串
print(url[7: -6]) # 输出 python
#获取索引从-8到2的子串
print(url[-8: -2])
#从索引0开始,每隔2个字符取出一个字符,直到索引10为止
print(url[0: 10: 2])
获取字符串长度或字节数
要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使
用
len
函数
len(string)
# string 用于指定要进行长度统计的字符串
url = '人生苦短,我用python,不掉丢发哈'
print(len(url))
str1 = "人生苦短,我用Python"
print(len(str1.encode()))
# 因为汉字加中文标点符号共 7 个,占 21 个字节,而英文字母和英文的标点符号占 6 个字节,一共
占用 27 个字节。
str1 = "人生苦短,我用Python"
print(len(str1.encode('gbk')))
分割合并字符串
split()
方法用于将字符串分割成子字符串列表。默认情况下,它会在任何空白(空格、换行符等)处分割字符串,但你也可以指定一个分隔符。
join()
方法用于将字符串列表合并成一个字符串。你需要提供一个分隔符,它将作为列表中每个元素之间的连接符。
# 原始字符串
s = "apple,banana,orange"
# 分割字符串
fruits = s.split(',')
print(fruits) # 输出 ['apple', 'banana', 'orange']
# 修改列表中的元素
fruits[1] = 'kiwi'
# 合并字符串
s_new = ','.join(fruits)
print(s_new) # 输出 'apple,kiwi,orange'
count(),find(),index()
count()
方法用于计算子字符串在字符串中出现的次数。它返回指定值在字符串中出现的次数(非重叠)。如果未找到该值,则返回0。
s = "apple, apple pie, apple juice"
count = s.count("apple")
print(count) # 输出 3
find()
方法用于查找子字符串在字符串中首次出现的位置(索引)。如果未找到该子字符串,则返回-1。
s = "apple, apple pie, apple juice"
position = s.find("apple")
print(position) # 输出 0
position = s.find("banana")
print(position) # 输出 -1,因为 "banana" 不在字符串中
index()
方法与 find()
方法类似,也是用于查找子字符串在字符串中首次出现的位置(索引)。但是,如果未找到该子字符串,index()
会抛出一个 ValueError
异常,而 find()
会返回-1。
s = "apple, apple pie, apple juice"
position = s.index("apple")
print(position) # 输出 0
# 这会抛出一个 ValueError 异常,因为 "banana" 不在字符串中
position = s.index("banana")
列表
创建列表
使用
[ ]
直接创建列表
使用
list()
函数创建列表
listname = [element1 , element2 , element3 , ... , elementn]
# 其中,listname 表示变量名,element1 ~ elementn 表示列表元素。
num = [1, 2, 3, 4, 5, 6, 7]
name = ["百度", "https://www.baidu.com"]
program = ["C语言", "Python", "Java"]
emptylist = []
# emptylist 是一个空列表。
#将字符串转换成列表
list1 = list("hello")
print(list1)
#将元组转换成列表
tuple1 = ('Python', 'Java', 'C++', 'JavaScript')
list2 = list(tuple1)
print(list2)
#将字典转换成列表
dict1 = {'a':100, 'b':42, 'c':9}
list3 = list(dict1)
print(list3)
#将区间转换成列表
range1 = range(1, 6)
list4 = list(range1)
print(list4)
#创建空列表
print(list())
访问列表元素
列表是
Python
序列的一种,我们可以使用索引(
Index
)访问列表中的某个元素(得到的是一个
元素的值),也可以使用切片访问列表中的一组元素(得到的是一个新的子列表)。
url = list("https://www.baidu.com/")
#使用索引访问列表中的某个元素
print(url[3]) #使用正数索引
print(url[-4]) #使用负数索引
#使用切片访问列表中的一组元素
print(url[9: 18]) #使用正数切片
print(url[9: 18: 3]) #指定步长
print(url[-6: -1]) #使用负数切片