前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python之路(三)Python数据类

Python之路(三)Python数据类

作者头像
py3study
发布2020-01-08 17:32:26
9960
发布2020-01-08 17:32:26
举报
文章被收录于专栏:python3

运算符

  • 算数运算符

序号

符号

描述

实例

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。

  • 创建
代码语言:javascript
复制
a = 123
a = int(123)
print(type(a))  // 打印变量a的类型
  • 转换
代码语言:javascript
复制
a = '123'
int_a = int(a)  // 将字符串转换成整数
print(type(int_a))

布尔值

布尔值只有True,False两种值,要么是True,要么是False,在Python中可以直接使用True,False来表示布尔值(需要注意大小写)。

  • 创建
代码语言:javascript
复制
a = True
print(type(a))
b = False
print(type(b))
  • 转换
代码语言:javascript
复制
a = 123
bool_a = bool(a)    // 将整数转换成布尔值,整数转换成布尔值只有0是False,其它都是True
print(type(bool_a))

b = 'Hello'
bool_b = bool(b)    // 将字符串转换成布尔值,字符串转换成布尔值只有空是False,其它都是True
print(type(bool_b))

字符串

字符串是以单引号,双引号括起来的任意文本,例如'Hello',''Python''。

  • 创建
代码语言:javascript
复制
a = 'Hello'
a = str('Hello')
print(type(a))
  • 转换
代码语言:javascript
复制
a = 123
str_a = str(a)  // 将整数转换成字符串
print(type(str_a))
  • 拼接
代码语言:javascript
复制
a = 'Hello'
b = 'Python'
print(a + b)
  • 格式化
代码语言:javascript
复制
a = '我叫%s,我今年%d岁,体重%f公斤,我正再学习%s课程' %('林斌',18,55.2,'Python')
print(a)

%s:打印字符串 %d:打印整数 %f:打印浮点数

  • 子序列
代码语言:javascript
复制
a = '谁说我的眼里只有你,让我把你忘记!'
if '我的眼里只有你' in a:
    print('包含敏感字符')
else:
    print('不包含敏感字符')
  • 移除空白,换行符
代码语言:javascript
复制
a = ' linbin '
print(a.strip())    // 移除左右两边空白
print(a.lstrip())   // 移除左边空白
print(a.rstrip())   // 移除右边空白
  • 分割
代码语言:javascript
复制
a = 'my|name|is|linbin'
print(a.split('|'))     // 以'|'进行分割
print(a.split('|',1))   // 以左边第一个'|'进行分割
print(a.rsplit('|',1))  // 以右边第一个'|'进行分割
  • 长度计算
代码语言:javascript
复制
a = '谁说我的眼里只有你,让我把你忘记!'
print(len(a))       // 计算字符长度,不是字节长度
  • 索引
代码语言:javascript
复制
a = '谁说我的眼里只有你,让我把你忘记!'
print(a[8])        // 从0开始开始计算

a = '谁说我的眼里只有你,让我把你忘记!'
i = 0
while i < len(a):
    print(a[i])
    i += 1
  • 切片
代码语言:javascript
复制
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']。

  • 创建
代码语言:javascript
复制
a = ['林斌',123,'linbin']
a = list(['林斌',123,'linbin'])
print(type(a))
  • 子元素
代码语言:javascript
复制
a = ['林斌',123,'linbin']
if 'linbin' in a:
    print('包含子元素')
else:
    print('不包含子元素')

a = ['林斌',123,'linbin']
if '林' in a[0]:
    print('元素包含在列表内')
else:
    print('元素不包含在列表内')
  • 索引
代码语言:javascript
复制
a = ['林斌',123,'linbin']
print(a[2])
  • 长度计算
代码语言:javascript
复制
a = ['林斌',123,'linbin']
print(len(a))
  • 切片
代码语言:javascript
复制
a = ['林斌',123,'linbin']
print(a[0:2])
  • 追加
代码语言:javascript
复制
a = ['林斌',123,'linbin']
a.append('Python')      // 追加到列表最后面
print(a)
  • 插入
代码语言:javascript
复制
a = ['林斌',123,'linbin']
a.insert(1,'Python')    // 插入到指定元素后面
print(a)
  • 删除
代码语言:javascript
复制
a = ['林斌',123,'linbin']
a.remove(123)   // 以元素的方式删除,从左边开始删除第一个
print(a)
del a[1]        // 以索引的方式删除
print(a)
  • 更新
代码语言:javascript
复制
a = ['林斌',123,'linbin']
a[1] = 'LinBin'     // 如果超过列表的长度会报错
print(a)
  • 循环
代码语言:javascript
复制
a = ['林斌',123,'linbin']
for i in a:
    print(i)

a = ['林斌',123,'linbin']
i = 0
while i < len(a):
    print(a[i])
    i += 1

字典

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中,例如{'name': 'linbin','passwod': 'axbc1kof','times': 3}

  • 创建
代码语言:javascript
复制
a = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
}

a = dict({
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
})
  • 长度计算
代码语言:javascript
复制
a = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
}
print(len(a))
  • 索引取值
代码语言:javascript
复制
a = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
}
print(a['password'])        // 根据key获取值
  • 追加
代码语言:javascript
复制
a = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
}
a['sex'] = '男'      // 如果key不存在,则添加,如果存在,则更新
print(a)
  • 删除
代码语言:javascript
复制
a = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
}
del a['times']
print(a)
  • 更新
代码语言:javascript
复制
a = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
}
a['times'] = 4
print(a)
  • 循环
代码语言:javascript
复制
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)

字典和列表嵌套

  • 列表嵌套列表
代码语言:javascript
复制
user_list = ['linbin','LinBin',['a','b','c']]
  • 字典嵌套字典
代码语言:javascript
复制
user_dict = {
    'name': 'linbin',
    'password': 'axbc1kof',
    'times': 3
    'sex': {
        'Libin': '男',
        'LinBin': '女'
    }
}
  • 字典列表相互嵌套
代码语言:javascript
复制
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'] = 3
print(a)

小试牛刀

基于文件存储的用户登录程序(三次登录失败,锁定用户)

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:utf-8 -*-

# 用户信息存放于DB文件
"""
linbin|axbc1kof|3
LinBin|axbc1kof|2
liuwenqian|axbc1kof|2
LinWenQian|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()                 # 关闭文件
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运算符
  • 整数
  • 布尔值
  • 字符串
  • 列表
  • 字典
  • 字典和列表嵌套
  • 小试牛刀
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档