Python之元组

24 篇文章 2 订阅
24 篇文章 1 订阅

Python之元组

  • 什么是元组

如果说列表是打了激素的数组,
那么元组就是“带了紧箍咒”的列表
元组不可变数据类型,没有增删改,可以存储任意数据类型

  • 定义一个元组
>>> t = (1,1.2,True,'redhat')
>>> print(t,type(t))
((1, 1.2, True, 'redhat'), <type 'tuple'>)
>>> t1 = ([1,2,3],4)
>>> print(t1,type(t1))
(([1, 2, 3], 4), <type 'tuple'>)

元组如果只有一个元素,元素后面一定要加逗号,否则数据类型不确定

>>> t = (2)
>>> print(type(t))
<type 'int'>
>>> t = (2,)
>>> print(type(t))
<type 'tuple'>
  • 元组内容修改(包含可变数据类型)
>>> t1 = ([1,2,3],4)
>>> t1[0].append(5)
>>> print(t1,type(t1))
(([1, 2, 3, 5], 4), <type 'tuple'>)
>>> t2 = ()
>>> print(t2,type(t2))
((), <type 'tuple'>)
>>> t3 = tuple([])
>>> print(t3,type(t3))
((), <type 'tuple'>)
>>> t4 = list(t3)
>>> print(t4,type(t4))
([], <type 'list'>)
>>> list = [1]
>>> print(list,type(list))
([1], <type 'list'>)
  • 元组的常用方法

.count:统计元组中字符出现的次数
.index:查看元组中字符的位置

>>> t = (10,1.2,True,'westos','westos')
>>> print(t.count('westos'))
2
>>> print(t.index(1.2))
1
>>> print(t.index(10))
0
>>> print(t.index('westos'))
3
  • 元组的特性

索引:

>>> t = (10,1.2,True,'westos','westos')
>>> print(t[0])
10
>>> print(t[3])
westos

切片:

>>> print(t[:-1])
(10, 1.2, True, 'westos')
>>> print(t[::-1])
('westos', 'westos', True, 1.2, 10)

连接:
不同的数据类型之间不能连接

>>> print(t + (1,3,4))
(10, 1.2, True, 'westos', 'westos', 1, 3, 4)
>>> print(t + [1,2,3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "list") to tuple
>>> print(t + 'redhat')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "str") to tuple

重复:

>>> print(t * 3)
(10, 1.2, True, 'westos', 'westos', 10, 1.2, True, 'westos', 'westos', 10, 1.2, True, 'westos', 'westos')

for 循环:

[kiosk@foundation1 ~]$ vim test.py 
[kiosk@foundation1 ~]$ cat test.py 
t = (10,1.2,True,'westos','westos')
for i in t:
	print(i)
[kiosk@foundation1 ~]$ python test.py 
10
1.2
True
westos
westos

成员操作符:

>>> t = (10,1.2,True,'westos','westos')
>>> print(1 in t)
True
>>> print(0 in t)
False
>>> print(True in t)
True
>>> print(1 not in t)
False
  • 元组的应用场景
>>> a = 1
>>> b = 2
>>> a,b = b,a  ##b,a = (1,2) b=(1,2)[0] a=(1,2)[1]
>>> print(a)
2
>>> print(b)
1

打印变量:

>>> name = 'westos'
>>> age = 11
>>> t = (name,age)
>>> print('name:%s,age:%d' %(name,age))
name:westos,age:11
>>> print('name:%s,age:%d' %t)
name:westos,age:11

元组的赋值:有多少个元素,就用多少个变量接收

>>> t = ('westos',10,100)
>>> name,age,score = t
>>> print(name,age,score)
('westos', 10, 100)
  • 元组的示例

系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘westos’]
passwd = [‘123’,‘456’]
添加用户:
1). 判断用户是否存在?
2). 如果存在, 报错;
3). 如果不存在,添加用户名和密码分别到列表中;
删除用户
1). 判断用户名是否存在
2). 如果存在,删除;
3). 如果不存在, 报错;
用户登陆
用户查看
退出

users = ['root', 'westos']
passwd = ['123', '456']
while True:
    choose = int(input('请选择服务:1-添加用户、2-删除用户、3-登陆用户、4-查看用户、5-退出 '))
    if (choose == 1):
        name = input('请输入新用户:')
        for x in users:
            if (name == x):
                print('此用户已存在,请重新输入:')
                break
        else:
            users.append(name)
            secret = input('请设置密码:')
            passwd.append(secret)
            print('用户添加成功!!')
    elif (choose == 2):
        name1 = input('请输入需要删除的用户:')
        i = 0
        for x in users:
            if (name1 == x):
                users.pop(i)
                passwd.pop(i)
                print('用户删除成功!!')
                break
            i+= 1
        else:
            print('用户不存在,请重新输入:')
    elif (choose == 3):
        loginuser = input('请输入用户名:')
        k = 0
        for y in users:
            if (loginuser == y):
                loginpass = input('请输入密码:')
                if (loginpass == passwd[k]):
                    print('登陆成功!!')
        else:
            print('登录失败!!')
    elif (choose == 4):
        loginuser = input('请输入用户名:')
        k = 0
        for y in users:
            if (loginuser == y):
                loginpass = input('请输入密码:')
                if (loginpass == passwd[k]):
                    print('查看成功!!')
        else:
            print('查看失败!!')
    else:
        print('退出登陆!')
        exit()

END

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值