python之数据结构

这篇博客详细介绍了Python中的数据结构,包括字符串的格式化输出、下标和切片、函数操作,以及电话号码识别实战。接着讲解了元组的定义、操作和销售数据统计应用。深入探讨了列表的定义、增删改查、函数使用,以及实战销售业绩排行榜。此外,还涵盖了字典的定义、增删改查、遍历和函数,最后讨论了集合的定义、遍历、增删改查及其函数,帮助读者掌握Python数据类型的使用方法。
摘要由CSDN通过智能技术生成

目录

一、字符串

(一)字符串的格式化输出

1、格式化运算符

2、format函数

(二)字符串的下标和切片

1、下标

 2、切片

3、步长

(三)字符串函数

1、去除空白字符函数

2、大小写操作

3、字符串判断

4、查找与替换​​​​​​​

5、字符串长度

(四)实战字符串之电话号码的识别

二、元组

(一)定义

 (二)元组操作

1、拼接

2、计数与查找

3、遍历元组 

          (三)元组之销售数据统计-销冠

三、列表list

(一)列表定义

(二)增删改查

1、增加

2、删除

3、修改

4、查询

(三)列表的函数

1、insert(插入下标前面)

2、pop(移除列表最后一位元素并返回该元素)

3、remove(删除第一个出现的指定元素)

4、clear(清空列表)

5、extend(一次多个添加)

6、reverse(倒序列表)

7、sort

8、copy

四、列表表达式 

实战:销售业绩排行榜

四、字典

(一)定义

(二) 增删改查

1、增加

2、删除

3、修改

4、查询

(三)遍历字典 

(四)字典函数 

1、get

2、keys()与values() 

五、集合set

(一)定义

(二)遍历集合

1、集合的遍历

(三)增删改查

1、增加

2、修改与删除

3、查询

(四)集合函数


学习各种数据类型特点和使用方法,当拿到数据时,可以判断数据类型提取出自己需要的数据。

一、字符串

(一)字符串的格式化输出

1、格式化运算符

print("%d" % 3.14) # 输出3 
print("%d" % 3.99) # 输出3,不会四舍五入
print("%f" % 3.14123456)#输出3.141235
print("%f" % 3.14)#输出3.140000
#取小数点后6位,且会四舍五入
print("%.2f" % 3.1415926)#输出3.14,代表取小数点后2位
%s 是胜任最广泛的占位符,它可以对应任何类型的变量。
print("%s" % 100) # 输出100 
print("%s" % 3.14) # 输出3.14 
print("%s" % "python") # 输出python
report = "%d年%s公司增长了%.2f%%业绩" %(2019,"腾讯",20.22)
print(report)
#2019年腾讯公司增长了20.22%业绩
#括号要英文格式的,%%要在f后面

2、format函数

每三位用逗号分隔:

print('{:,}'.format(123456789))#输出123,456,789

format函数也可以像%那样来格式化多个参数: 

2019年腾讯公司增长了20.22%业绩
report = "{0}年{1}公司增长了{2}%业绩" .format(2019,"腾讯",20.22)
print(report)

{0}表示第一个参数,{1}{2}表示第二、第三个参数,以此类推。这样做的好处是,如果有参数在字符串出现多次,可以不用重复的传入。

s = "{0}摩洛哥{1:,}万人,增长了{1}吨产量,高达{2}美元".format(2020,70000000,180000)
print(s)
#输出2020摩洛哥70,000,000万人,增长了70000000吨产量,高达180000美元

(二)字符串的下标和切片

1、下标

字符串其实也是一种序列,可以理解为一串整齐的按顺序排着队的字符,组成了字符串,那每个字符在队伍中都有自己的位置,这个位置就是下标,又叫作索引。

 2、切片

# 从0到末尾CHINA  
"CHINA"[:] 或者 "CHINA"[0:5] 或者 "CHINA"[0:]


# 从0到第3个 
"CHINA"[:3] 或者 # CHI 

# 从第3个到末尾 
"CHINA"[2:] # INA

"CHINA"[0:0] # 空字符串 
"CHINA"[0:-1] # CHIN

3、步长

第二个冒号表示截取步长,这里的2表示每两个字符取一个,如果不传,默认就是每一个都取。步长也可以为负数,如果传递了一个负数,则表示是从右往左进行截取。最少是1,不存在0步长。

# 每隔两个字符截取一个 
"CHINA"[::2] # CIA

# 从右往左每隔两个两个字符截取一个 
"CHINA"[::-2] # AIC

#倒序输出字符串
"CHINA"[::-1] # ANIHC

(三)字符串函数

1、去除空白字符函数

空白符包括空格、换行(\n)、制表符(\t)。strip函数只去掉首尾空白字符,并不会去除字符串之间的空白字符。另外 lstrip 和 rstrip 函数,分别去除字符串左边和右边的空白字符。

" abc ".strip() 
"\t abc \n".strip()
#输出abc

2、大小写操作

# 将所有字符变成大写 
"china".upper() # CHINA 

# 将字符串的首字母变成大写 
"china".capitalize() # China 

# 将所有字符变成小写 
"CHINA".lower() # china 

# 将每个单词的首字母变成大写 
"i have a dream".title() # I Have A Dream

3、字符串判断

判断字符串是否以指定的字符串开头或者结尾

print('china'.islower())
print('china'.isupper())
print('china'.startswith('c'))
#True
#False
#True

4、查找与替换

#password = '123'
#input_password = '456123789'
print(input_pwd.find(password))
# 结果是3,且它的出现的位置是3(下标)。如果没有找到则会返回-1

print(input_pwd.index(password))
# 结果是3,如果找不到密码错误会报错,这是2个函数的区别。
print("abba".count('a')) # 2 
print('abba'.count('c'))# 0


print("abba".replace('a', 'b'))
# 结果是'bbbb' 
print('apple banana'.replace('apple', 'orange'))
# 结果是'orange banana'

5、字符串长度

 内置函数len

len("China") # 5 
len("") # 0 
len("a") # 1

#字符串长度输出的是整型的数字,代表个数

(四)字符串之电话号码的识别

结合字符操作知识,可以开发一个电话号码识别程序,用户输入一串数字,程序识别它是不是一个有效的电话号码,如果是有效电话号码,我们再识别它是一个固定电话号码、手机号码、还是400号码。用户输入"exit"后,程序退出。

这是一个稍微复杂的需求,在动手写代码之前,我们先分析一下需求。

1、先列举一下常见的几种电话号码形式,手机号码是11位的,以1开头,不同运营商的前三位不一样,由于三位太多了,我们就以前两位来判断,包括13,15,17,18,19 。

2、看固定号码,区号+电话号码的方式,区号可能是三位(010),也可能是四位(0888),电话号码是8位,那加起来一共是11位或12位。

3、最是400电话,这个特征很明显,以400开头,共10位。

更多详情:https://mp.csdn.net/mp_blog/creation/editor/126631867

简化版


cellphone_number_start = "13,15,17,18,19"
telephone_number_start = "010,021,022,025,0888,0555"
while True:
    num = input("请输入号码:\n")
    if num.strip() == "exit":
        #因为前后空格会影响判断,后面有识别是否数字,所以一定要在识别数字之前执行
        print("退出")
        break
    if num == "":
        print("您输入为空,请重试")
        continue
    if not num.isdigit():
        print("您输入的无效,请重试")
        continue
    if num[0:2] in cellphone_number_start and len(num) == 11:
        #注意此处是双重条件且len函数用法
        print("这是手机号码")
        continue
    if num.startswith('0'):
        if num[0:3] in telephone_number_start and len(num) == 11 or \
                (num[0:4] in telephone_number_start and len(num) == 12):
            print("这是一个固定号码")
            continue
    if num.startswith("400") and len(num) == 10:
        #此处不能用num[:3] == 400࿰
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值