运算符
算数运算符
序号 | 符号 | 描述 | 实例 |
---|---|---|---|
1 | + | 加,两个操作数相加 | 6 + 3 输出结果9 |
2 | - | 减,两个操作数相减 | 6 - 3 输出结果3 |
3 | * | 乘,两个操作数相乘 | 6 * 3 输出结果18 |
4 | / | 除,两个操作数相除 | 6 / 3 输出结果2 |
5 | % | 取模,返回除法的余数 | 6 % 4 输出结果2 |
6 | ** | 幂,返回x的y次幂 | 2 ** 3 输出结果8 |
7 | // | 取整除,返回商的整数部分 | 6 / 5 输出结果1 |
比较运算符
序号 | 符号 | 描述 | 实例 |
---|---|---|---|
1 | == | 等于,比较两个对象是否相等 | 1 == 1 返回True |
2 | != | 不等于,比较两个对象是否不相等 | 1 != 1 返回False |
3 | > | 大于,返回x是否大于y | 2 > 1 返回True |
4 | < | 小于,返回x是否小于y | 2 < 1 返回False |
5 | >= | 大于等于,返回x是否大于等于y | 2 >= 1 返回True |
6 | <= | 小于等于,返回x是否小于等于y | 2 <= 1 返回False |
赋值运算符
序号 | 符号 | 描述 | 实例 |
---|---|---|---|
1 | = | 简单的赋值运算符 | a = 123 |
2 | += | 加法赋值运算符 | a += 1 等效于a = a + 1 |
3 | -= | 减法赋值运算符 | a -= 1 等效于a = a - 1 |
4 | *= | 乘法赋值运算符 | a *= 1 等效于a = a * 1 |
5 | /= | 除法赋值运算符 | a /= 1 等效于a = a / 1 |
6 | %= | 取模赋值运算符 | a %= 1 等效于a = a % 1 |
7 | **= | 幂赋值运算符 | a **= 1 等效于a = a ** 1 |
8 | //= | 取整除赋值运算符 | a //= 1 等效于a = a // 1 |
逻辑运算符
序号 | 符号 | 表达式 | 描述 | 实例 |
---|---|---|---|---|
1 | and | x and y | 布尔''与'' | 1 = 1 and 2 > 1 返回True |
2 | or | x or y | 布尔''或" | 1 == 1 or 2 > 1 返回True |
3 | not | not x | 布尔''非'' | not 1 == 1 返回False |
成员运算符
序号 | 符号 | 描述 | 实例 |
---|---|---|---|
1 | in | 在指定的序列种找到值,返回True,否则返回False | x在y序列中 返回True |
2 | not in | 在指定的序列种找不到值,返回True,否则返回False | x不在y序列中 返回True |
整数
Python可以处理任意大小的整数,当然包括负整数,例如1,100,-99。
创建
a = 123a = int(123)print(type(a)) // 打印变量a的类型
转换
a = '123'int_a = int(a) // 将字符串转换成整数print(type(int_a))
布尔值
布尔值只有True,False两种值,要么是True,要么是False,在Python中可以直接使用True,False来表示布尔值(需要注意大小写)。
创建
a = Trueprint(type(a))b = Falseprint(type(b))
转换
a = 123bool_a = bool(a) // 将整数转换成布尔值,整数转换成布尔值只有0是False,其它都是Trueprint(type(bool_a))b = 'Hello'bool_b = bool(b) // 将字符串转换成布尔值,字符串转换成布尔值只有空是False,其它都是Trueprint(type(bool_b))
字符串
字符串是以单引号,双引号括起来的任意文本,例如'Hello',''Python''。
创建
a = 'Hello'a = str('Hello')print(type(a))
转换
a = 123str_a = str(a) // 将整数转换成字符串print(type(str_a))
拼接
a = 'Hello'b = 'Python'print(a + b)
格式化
a = '我叫%s,我今年%d岁,体重%f公斤,我正再学习%s课程' %('林斌',18,55.2,'Python')print(a)
%s:
打印字符串%d:
打印整数%f:
打印浮点数
子序列
a = '谁说我的眼里只有你,让我把你忘记!'if '我的眼里只有你' in a: print('包含敏感字符')else: print('不包含敏感字符')
移除空白,换行符
a = ' linbin 'print(a.strip()) // 移除左右两边空白print(a.lstrip()) // 移除左边空白print(a.rstrip()) // 移除右边空白
分割
a = 'my|name|is|linbin'print(a.split('|')) // 以'|'进行分割print(a.split('|',1)) // 以左边第一个'|'进行分割print(a.rsplit('|',1)) // 以右边第一个'|'进行分割
长度计算
a = '谁说我的眼里只有你,让我把你忘记!'print(len(a)) // 计算字符长度,不是字节长度
索引
a = '谁说我的眼里只有你,让我把你忘记!'print(a[8]) // 从0开始开始计算a = '谁说我的眼里只有你,让我把你忘记!'i = 0while i < len(a): print(a[i]) i += 1
切片
a = '谁说我的眼里只有你,让我把你忘记!'print(a[2]) // 取第三个字符print(a[-2]) // 取倒数第二个字符print(a[0:2]) // 从第一个字符开始,连续取两个字符print(a[0:]) // 从第一个字符开始,取到最后print(a[0:-1]) // 从第一个字符开始,取到最后,但不取最后一个字符print(a[0::2]) // 从第一个字符开始,取到最后,步长为2
列表
列表是一种有序的集合,可以随时添加和删除其中的元素,例如a = ['林斌',123,'linbin']。
创建
a = ['林斌',123,'linbin']a = list(['林斌',123,'linbin'])print(type(a))
子元素
a = ['林斌',123,'linbin']if 'linbin' in a: print('包含子元素')else: print('不包含子元素')a = ['林斌',123,'linbin']if '林' in a[0]: print('元素包含在列表内')else: print('元素不包含在列表内')
索引
a = ['林斌',123,'linbin']print(a[2])
长度计算
a = ['林斌',123,'linbin']print(len(a))
切片
a = ['林斌',123,'linbin']print(a[0:2])
追加
a = ['林斌',123,'linbin']a.append('Python') // 追加到列表最后面print(a)
插入
a = ['林斌',123,'linbin']a.insert(1,'Python') // 插入到指定元素后面print(a)
删除
a = ['林斌',123,'linbin']a.remove(123) // 以元素的方式删除,从左边开始删除第一个print(a)del a[1] // 以索引的方式删除print(a)
更新
a = ['林斌',123,'linbin']a[1] = 'LinBin' // 如果超过列表的长度会报错print(a)
循环
a = ['林斌',123,'linbin']for i in a: print(i)a = ['林斌',123,'linbin']i = 0while i < len(a): print(a[i]) i += 1
字典
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号:
分割,每个对之间用逗号,
分割,整个字典包括在花括号{}
中,例如{'name': 'linbin','passwod': 'axbc1kof','times': 3}
创建
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}a = dict({ 'name': 'linbin', 'password': 'axbc1kof', 'times': 3})
长度计算
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}print(len(a))
索引取值
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}print(a['password']) // 根据key获取值
追加
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}a['sex'] = '男' // 如果key不存在,则添加,如果存在,则更新print(a)
删除
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}del a['times']print(a)
更新
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}a['times'] = 4print(a)
循环
a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}for i in a.keys(): // 循环keys print(i)a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}for i in a.values(): // 循环values print(i)a = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3}for i in a.items(): // 循环items print(i)
字典和列表嵌套
列表嵌套列表
user_list = ['linbin','LinBin',['a','b','c']]
字典嵌套字典
user_dict = { 'name': 'linbin', 'password': 'axbc1kof', 'times': 3 'sex': { 'Libin': '男', 'LinBin': '女' }}
字典列表相互嵌套
user_dict = { 'name': 'linbin', 'password': 'axbc1kof', 'times': { 'k1': 'v1', 'k2': 'v2' }, 'sex': ['linbin','LinBin',['a','b','c'],{'name': 'liuwenqian','password': 'axbc1kof'}]}a = user_dict['sex'][2]a.append('d')print(a)a = user_dict['sex'][3]a['times'] = 3print(a)
小试牛刀
基于文件存储的用户登录程序(三次登录失败,锁定用户)
#!/usr/bin/python# -*- coding:utf-8 -*-# 用户信息存放于DB文件"""linbin|axbc1kof|3LinBin|axbc1kof|2liuwenqian|axbc1kof|2LinWenQian|axbc1kof|0"""# 打开文件并读取内容option1 = open('DB','r') # 打开文件data = option1.read() # 读取文件option1.close() # 关闭文件# 定义用户信息列表,初始化为空user_info_list = []# 用户信息转成列表user_list = data.split('\n')# 用户信息列表转成列表嵌入字典for item in user_list: temp = item.split('|') user_dict = { 'name': temp[0], 'password': temp[1], 'times': temp[2] } user_info_list.append(user_dict)# 循环控制标识符flag = True# 定义用户登录循环模块while flag: name = input('请输入用户名(退出Q|q):') # 提示用户输入用户名,退出输入Q|q if name == 'Q' or name == 'q': # 用户输入Q|q,退出程序 break # 跳出while循环 else: for item in user_info_list: # 循环用户信息列表 if name == item['name']: # 判断用户名 if int(item['times']) < 3: # 判断尝试次数是否小于3 password = input('请输入密码:') # 提示用户输入密码 if password == item['password']: # 判断密码 print('登录成功!') item['times'] = 0 # 尝试次数更新为零 flag = False # 跳出while循环 break # 跳出for循环 else: print('密码错误,请重新输入!') # 密码错误,提示用户重新输入 item['times'] = int(item['times']) + 1 # 尝试次数加1 break # 跳出for循环 else: print('账号已锁定,请联系管理员!') # 尝试次数大于3,提示用户账号已锁定 flag = False # 跳出while循环 break # 跳出for循环 else: print('用户名不存在,请重新输入') # 用户名不存在,提示用户重新输入# 定义用户信息字符串,初始化为空user_info_str = ''# 用户信息转成字符串for str in user_info_list: item_str = '%s|%s|%s' % (str['name'],str['password'],str['times']) if user_info_str == '': user_info_str += item_str else: user_info_str = user_info_str + '\n' + item_str# 打开文件并写入内容option2 = open('DB','w') # 打开文件option2.write(user_info_str) # 写入文件option2.close() # 关闭文件