注释
- 单行注释:#号
- 多行注释:3对双引号或者单引号(‘’‘’‘’)(""" """)
- 快捷键为ctrl+/
变量
- 通过type(变量或数据)可以获得数据的类型,返回的是变量的类
result=type(100)
变量名的规范
由字母,下划线和数字组成,且不能由数字开头,在Python中区分大小写,不能使用关键字
关键字:Python中预留的单词
- 导入python解释器提供的工具包:
import keyword
- 调用工具包中的功能得到关键字列表:
keyword.kwlist
有软性规则(书写规范)
- 驼峰命名法
- 每个单词都小写,单词之间用下划线隔开
输出
print()
函数:会在后面自动加一个换行
格式化输出
格式符号 转换 %c 字符 %s 字符串 %d 有符号十进制整数 %u 无符号十进制整数 %o 八进制整数 %x 十六进制整数(小写字母0x) %X 十六进制整数(大写字母0X) %f 浮点数 %e 科学计数法(小写'e') %E 科学计数法(大写“E”) %g %f和%e 的简写 %G %f和%E的简写
例如:
print("我的年龄是%d岁"%age)
print("我的姓名是%s,我的年龄是%d岁"%(user_name,age))
输入
input()
函数:从键盘中录入的数据是字符串数据
input("请录入一个信息")
算数运算符
+
加法
-
减法
*
乘法
/
除法
%
取模,就是取余数
//
整除,取整
**
幂指数
字符串与整数运算
字符串*n:将字符串重复n次
字符串+字符串:将两个字符串连接起来
赋值运算符
- +=
- -=
- *=
- /=
- %=
- **=
- //=
关系运算符
- 大于>
- 小于<
- 等于==
- 大于等于>=
- 小于等于<=
- 不等于!=
运算出来时是一个布尔类型的值
数据类型转换
函数 | 说明 |
---|---|
int(x [,base ]) | 将x转换为一个整数 |
float(x ) | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
str(x ) | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s ) | 将序列 s 转换为一个元组 |
list(s ) | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个Unicode字符 |
ord(x ) | 将一个字符转换为它的ASCII整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
bin(x ) | 将一个整数转换为一个二进制字符串 |
条件判断语句
if 关系表达式
以缩进为其他语言的大括号
if age>=18:
print("已经成年")
- if...else...
if age >= 18:
print("已经成年")
else:
print("未成年")
if...elif...else
if age >= 18: print("已成年") elif age >=16 : print("已青年") else : print("未成年")
- 三目运算符
逻辑运算符
- and
- or
- not
True 非0的数字,但在Python中最好不要这么用
随机数
随机一个1到10的整型随机数
import random
num = random.randint(1, 10)
循环语句
while
while num < 5: print(num)
for
in后面可以是表达式,也可以是容器
for n in range(1, 10): # range是左闭右开区间[1,10) print(n)
break
跳出当前循环
continue
开始下一次循环
for...else
当for循环中的代码不是通过break结束的,将执行else中的代码
字符串
用一对单引号或者双引号,或者3对单引号引住的任何内容都是字符串。
普通输出:print("name")
Python 3.6以后可用f-string写法,大括号里面可以写表达式
f_string = f"姓名是{name}, 年龄是{age}"
print(f_string)
字符串下标(索引):跟C语言的字符数组一样
字符串切片:截取字符串,复制字符串中的一部分得到一个新的字符串。
格式:
字符串名[开始索引:结束索引:步长]
备注:
- 步长默认为1
- 如果是截取到最后一个字符,可以不写结束索引
- 如果是从第一个字符截取,可以不写开始索引
- 索引可以为负数。倒数第一个元素的索引是-1
s="hello python" str = s[2:5]
得到的结果为llo,即不包含结尾索引的元素
常用方法
find(查找的字符串,开始位置,结束位置)
检测 str 是否包含在 mystr中,如果找到则返回开始的索引值,否则返回-1
mystr.find(str, start=0, end=len(mystr))
index
跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
mystr.index(str, start=0, end=len(mystr))
count
返回 str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start=0, end=len(mystr))
split
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串。返回的结果是列表
mystr.split(str=" ", 2)
partition
把mystr以str分割成三部分,str前,str和str后。返回的结果是元组
mystr.partition(str)
isalpha
如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr.isalpha()
isdigit
如果 mystr 只包含数字则返回 True 否则返回 False.
mystr.isdigit()
isalnum
如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
mystr.isalnum()
isspace
如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr.isspace()
isupper
判断字符串中的字母是否都是大写,中间有空格和数字都无所谓。结果返回true或者false
mystr.isupper()
islower
跟isupper一样,判断是否小写
startswith
检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False
mystr.startswith(hello)
endswith
跟startwith一样
replace
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr.replace(str1, str2, mystr.count(str1))
upper()
将小写字母转换为大写字母
lower()
将大写字母转换为小写字母
strip()
默认去掉左右的空格
just(字符数)
字符串对齐。ljust为左对齐,rjust为右对齐,center()为中心对齐
join
mystr 中每个元素后面插入str,构造出一个新的字符串,返回为字符串类型
mystr.join(str)
列表(list)
跟C语言的数组一样,但与数组不同的是,列表可以存储任意类型的数据。
定义格式
用中括号括住的数据
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
每个元素都有自己的索引。可以根据索引进行增删改查
相关函数
统计:
- len(列表名):得到列表的长度
- count(数据):统计在列表中数据出现了几次
增:
- append(数据):在列表的最后添加元素
- insert(index, object):在指定位置index前插入元素object
- extend(列表名):通过extend可以将另一个集合中的元素逐一添加到列表中
查:
- in(存在),如果存在那么结果为true,否则为false
- not in(不存在),如果不存在那么结果为true,否则false
- index(数据,区间)
#待查找的列表 nameList = ['xiaoWang','xiaoZhang','xiaoHua'] #获取用户要查找的名字 findName = input('请输入要查找的姓名:') #查找是否存在 if findName in nameList: print('在字典中找到了相同的名字') else: print('没有找到')
>>> a = ['a', 'b', 'c', 'a', 'b'] >>> a.index('a', 1, 3) # 注意是左闭右开区间 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 'a' is not in list >>> a.index('a', 1, 4) 3
改:
- 通过索引直接进行修改
删:
- del:根据下标进行删除
- pop:删除最后一个元素
- remove:根据元素的值进行删除
- clear:全部一次性清空
排序:
- sort
reverse
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小
>>> a = [1, 4, 2, 3] >>> a [1, 4, 2, 3] >>> a.reverse() >>> a [3, 2, 4, 1] >>> a.sort() >>> a [1, 2, 3, 4] >>> a.sort(reverse=True) >>> a [4, 3, 2, 1]
遍历:
循环遍历,跟字符串一样
列表推导式
每次循环得到一个数字x,然后将x添加到列表中
list1 = [x for x in range(1, 5) if x % 2 == 0]
其中for前的x可以为表达式
元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
注意
如果一个元组中只有一个元素,需要打在元素的后面加一个逗号
字典(dict)
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
- 字典和列表一样,也能够存储多个数据
- 列表中找某个元素时,是根据下标进行的
- 字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
- 字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值
定义格式
字典名 = {key1: value1, key2: value2}
相关函数
增:
字典名[新的key] = 值
修改:
只能修改value,不能修改key
字典名[已存在的key] = 新的值
删:
通过key删除
pop
语法:
pop(key[,default])
用法:
>>> x = {'a':1,'b':2} >>> x.pop('a') 1 >>> x {'b': 2}
popitem
不需要传参数,删除最后一个键值对
del
#!/usr/bin/python # -*- coding: UTF-8 -*- dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} del dict['Name'] # 删除键是'Name'的条目 del dict # 删除字典
clear
用来清除字典中的所有数据,因为是原地操作,所以返回None
>>> f = {'key':'value'} >>> a = f >>> a {'key': 'value'} >>> f.clear() >>> f {} >>> a {}
当原字典被引用时,想清空原字典中的元素,用clear()方法,a字典中的元素也同时被清除了。
查:
- 通过key查找
用get方法
info = {'name':'吴彦祖','age':18} print(info['age']) # 获取年龄 # print(info['sex']) # 获取不存在的key,会发生异常 print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常
遍历:
- 调用key方法得到key组成的列表,再用for循环遍历字典
- 调用items方法得到所有键值对组成的列表,返回的结果是键值对元组组成的列表
字典的无序是指数据存进字典的顺序跟取出字典的顺序不一致
有序字典:OrderedDict
python3.5 字典是无序的
python3.6 只有显示出来的是有序的 但实际上 也是无序的
python3.7之后 字典就是有序的
有序字典应该先 导入
from collections import OrderedDict OrderedDict就是一个类 需要需用 先进行 实例化 od = OrderedDict() 然后和字典的用法是一样的 from collections import OrderedDict #创建字典对象 od = OrderedDict() od['k1'] = 'v1' od['k2'] = 'v2' od['k3'] = 'v3' for k, v in od.items(): print('k={},v={}'.format(k, v))
显示的结果就是
k=k1,v=v1 k=k2,v=v2 k=k3,v=v3 这就是有序字典了 有序字典就是按照插入数据的顺序输出的