继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python之路(三)Python数据类型

Qyouu
关注TA
已关注
手记 444
粉丝 87
获赞 413

运算符

  • 算数运算符

序号符号描述实例
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是否大于y2 > 1 返回True
4<小于,返回x是否小于y2 < 1 返回False
5>=大于等于,返回x是否大于等于y2 >= 1 返回True
6<=小于等于,返回x是否小于等于y2 <= 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
  • 逻辑运算符

序号符号表达式描述实例
1andx and y布尔''与''1 = 1 and 2 > 1 返回True
2orx or y布尔''或"1 == 1 or 2 > 1 返回True
3notnot x布尔''非''not 1 == 1 返回False
  • 成员运算符

序号符号描述实例
1in在指定的序列种找到值,返回True,否则返回Falsex在y序列中 返回True
2not in在指定的序列种找不到值,返回True,否则返回Falsex不在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()                 # 关闭文件

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP