#标识符
标识符和其它语言一样,只能字母、数字和下划线组成,且数字不能作为开头。
对大小写敏感。
#注释
单行注释用#
多行注释用'''或""" (因为python中单引号和双引号使用完全相同)
#书写代码规则
python以缩进表示代码块,不是用括号
#数据类型
数字类型int bool float complex,其它类型str list tuple dict set
python创建变量,函数等不需要像c语言一样声明类型,在python中,类型是属于对象的,而不是属于变量。比如a=1,python将会完成:1.创建一个对象来代表1;2.创建一个变量a,如果还没有创建的话;3.将变量引用对象1。
强制类型转换:
·
int(
x)
将x转换为一个整数
·
float(
x)
将x转换到一个浮点数
·
str(
x)
将对象
x
转换为字符串
·
tuple(
s)
将序列
s
转换为一个元组
·
list(
s)
将序列
s
转换为一个列表
·
set(
s)
将序列
s
转换为一个集合
#索引
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
#字符串
拼接字符串:
如果直接将两个字符串紧挨着写在一起,Python 就会自动拼接它们
1.
s1
=
"Hello,"
'Charlie'
2.
print(
s1)
Python 使用加号(+)作为字符串的拼接运算符
1.
s2
=
"Python "
2.
s3
=
"iS Funny"
3.
4.
s4
=
s2
+
s3
5.
print(
s4)
输入:
input() 函数用于向用户生成一条提示,然后获取用户输入的内容。由于 input() 函数将用户输入的内容放入字符串中,因此用户输入任何内容,input() 函数总是返回一个字符串。
常用函数:
- len(s) 测字符串长度
- int(s) 将字符串转换成整形
- ord(s)与chr(ASCII) 将字符串和ASC码转换
- strip(s)去除首尾空格
- lstrip 去除左边的空格
- rstrip 去除右边的空格
- S.startwith(prefix[,start[,end]]) #是否以prefix开头
- S.endwith(suffix[,start[,end]]) #以suffix结尾
- isalnum 判断字符串是否是合法字符构成的(数字和字母)
- isdigit 判断字符串是否都是由数字构成的
- isalpha 判断字符串是否都是由字符构成的
- islow() 判断字符串是否小写
- isupper() 判断大写
- isspace() 判断空字符串
- S.lower() #小写
- S.upper() #大写
- S.swapcase() #大小写互换
- S.capitalize() #首字母大写
- 值拷贝(在python中字符串是不可修改的,只会创建新的字符串)
- s = "baidu"
- t = s[:3] + "x" + s[5:]
- "Mokaffe".replace("Mo","hello") (旧的,新的)
- 复制字符串strcpy(sStr1,sStr2)
- 比较字符串strcmp(sStr1,sStr2)
- 截取字符串:字符串名[起始:终点:步长]
- 字符串查找:
- S.find(substr, [start, [end]]) #返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索 【可以判断一个字符串是否包含另外一个字符串】
- S.index(substr, [start, [end]]) #与find()相同,只是在S中没有substr时,会返回一个运行时错误 【可以判断一个字符串是否包含另外一个字符串】
- S.rfind(substr, [start, [end]]) #返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
- S.rindex(substr, [start, [end]])
- 子字符串出现次数计算: S.count(substr, [start, [end]]) #计算substr在S中出现的次数 【可以判断一个字符串是否包含另外一个字符串】
- str1 in str2 # 【可以判断一个字符串是否包含另外一个字符串】
- max(str) 返回字符串str中最大的字母
- min(str)返回字符串str中最小的字母
#列表
- 切片: 列表名[起始:终点:步长]
- 重复: 列表名*次数 #比如a=[1,2] 那么print(a*3) 结果为[1,2,1,2,1,2]
- 连接: 用+号
- 成员操作符: in
- list( seq ) 将元组或字符串转换为列表。
- len(list) 计算列表中元素的个数
- max(list) 返回列表元素中的最大值。(当用 max() 函数当比较容器类型中的列表或者元组数据类型时,当其中的元素全部为数字类型时,直接根据值的大小比较。当其中的元素全部为字符串类型(string)时,则比较的是每个字符串元素的第一个字符的 ASCII 的大小。如果列表或者元组中的元素为数字类型和字符串类型混杂时,则无法比较。)
- min(list)
- list.append(obj) 在列表末尾添加新的对象,该方法无返回值,但是会修改原来的列表。
- list.count(obj) 统计某个元素在列表中出现的次数。
- list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。(seq – 元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾。)
- list.index(x[, start[, end]]) 从列表中找出某个值第一个匹配项的索引位置。
- list.insert(index, obj) 将指定对象插入列表的指定位置。
- list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。(index – 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 -1,删除最后一个列表值。)
- list.remove(obj) 移除列表中某个值的第一个匹配项。
- list.reverse() 反向列表中元素
- list.sort( key=None, reverse=False) 用于对原列表进行排序,如果指定参数,则使用指定的比较函数。(key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。)
- list.clear() 清空列表,类似于 del a[:]。
- list.copy() 复制列表,类似于 a[:],浅拷贝。
#元组
元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。
元组和列表(list)的不同之处在于:
- 列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;
- 而元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。
元组也可以看做是不可变的列表,对元组的操作和相关函数,基本都可类比列表。通常情况下,元组用于保存无需修改的内容。
从形式上看,元组的所有元素都放在一对小括号( )
中,相邻元素之间用逗号,
分隔。
需要注意的一点是,当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号,
,否则 Python 解释器会将它视为字符串。
#字典
- 字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值
key=>value
对用冒号
:
分割,每个键值对之间用逗号
,
分割,整个字典包括在花括号
{} 中
- 访问字典里的值,把相应的键放入[]中即可;但如果用字典里没有的键访问数据,会输出错误
- 既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典
- 字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。
- 通过 key 访问 value 使用的也是方括号语法,就像前面介绍的列表和元组一样,只是此时在方括号中放的是 key,而不是列表或元组中的索引。
- 如果要为 dict 添加 key-value 对,只需为不存在的 key 赋值即可
- 如果要删除宇典中的 key-value 对,则可使用 del 语句
- 如果对 dict 中存在的 key-value 对赋值,新赋的 value 就会覆盖原有的 value,这样即可改变 dict 中的 key-value 对
- 如果要判断字典是否包含指定的 key,则可以使用 in 或 not in 运算符。需要指出的是,对于 dict 而言,in 或 not in 运算符都是基于 key 来判断的。
- dict.clear() clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典。
- get() 方法其实就是根据 key 来获取 value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。
- update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。
- items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象,Python 不希望用户直接操作这几个方法,但可通过 list() 函数把它们转换成列表。
cars
= {
'BMW':
8.5,
'BENS':
8.3,
'AUDI':
7.9}
ims
=
cars.
items()
print(
type(
ims))
print(
list(
ims))
print(
list(
ims)[
1])
kys
=
cars.
keys()
print(
type(
kys))
print(
list(
kys))
print(
list(
kys)[
1])
vals
=
cars.
values()
print(
type(
vals))
print(
list(
vals)[
1])
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对
cars
= {
'BMW':
8.5,
'BENS':
8.3,
'AUDI':
7.9}
print(
cars.
pop(
'AUDI'))
print(
cars)
#集合
- 花括号和逗号创建集合,或使用set()函数
- 集合(set):存储元素不重复、无序数据类型,只支持成员操作赋、for循环迭代、枚举。无序的数据类型,添加顺序和在集合中的存储顺序不一样。不支持索引,重复,连接,切片。
- 当集合内有重复元素时,输出集合会自动将重复元素去掉
- 增删
s.
add(
1)
s.
update([
5,
2,
3,
6])
s.
pop()
s.
remove()
- 交集: s1.intersection(s2)
- 并集: s1.union(s2)
- 差集:s1.difference(s2)
- 超集:s1.issuperset(s2) #s1包含s2
- 子集:s1.issubset(s2) #s1包含于s2
- s1.isdisjoint(s2) #s1 s2互不相交时返回True
#条件语句
- if、elif、else 语句的最后都有冒号
:
,不要忘记。
#循环语句
- 通过range()可以创建一个执行指定次数的for循环
range(
start,
stop,
step)
- continue语句用在while和for循环中,只要在循环里遇到continue, continue语句后的命令不在继续执行,中断本次循环,继续下一次循环。
- break语句用在while和for循环中,只要在循环里遇到break,则立即结束循环。
- pass是空语句,不做任何事情,一般用做占位语句。例如我们再搭建程序成体框架时,某些具体细节语句暂时不需要完善, 此时就可以通过 pass 语句来占位,留出语句位置或补齐所需要的语法格式。
#函数
def
函数名(
形参列表):
return
返回值
#格式化输出
- 指定最小输出宽度,如%10d 表示输出的整数宽度至少为 10;%20s 表示输出的字符串宽度至少为 20。当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。
- 指定对齐方式,默认情况下,print() 输出的数据总是右对齐的。指定左对齐可用 -,如%-10d
- 对于字符串,只能使用
-
标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。
- 指定小数精度