终端计算器+删除列表重复元素+号码归属地查询:+列表的排序函数(sort)+返回一个列表中第二大的数

终端计算器
import sys

print(sys.argv)

if sys.argv[2] == '+':

    print(int(sys.argv[1]) + int(sys.argv[3]))

elif sys.argv[2] == '-':

    print(int(sys.argv[1]) - int(sys.argv[3]))

elif sys.argv[2] == '*':

    print(int(sys.argv[1]) * int(sys.argv[3]))

elif sys.argv[2] == '/':

    print(int(sys.argv[1]) / int(sys.argv[3]))

elif sys.argv[2] == '//':

    print(int(sys.argv[1]) // int(sys.argv[3]))

elif sys.argv[2] == '%':

    print(int(sys.argv[1]) % int(sys.argv[3]))

else:

    print("出错")

删除列表重复元素

#自己实现列表去重不要用set

    # def quchong(lt):
    # 	lt1=[]
    # 	for i in lt:
    # 		if i not in lt1:
    # 			lt1.append(i)
    # 	return lt1
    # print(quchong([1,2,2,2,3,4,]))

返回一个列表中第二大的数

#排序去除第二个
#求最大值,然后删除,再求最大值
def second_max(lt):
	if lt[0] > lt[1]:
		#记录最大值
		yida = lt[0]
		#记录第二大
		erda = lt[1]
	else:
		yida = lt[1]
		erda = lt[0]
		#获取长度
		n = len(lt)
		i = 2
	while i < n:
		if lt[i] > yida:
			erda = yida
			yida = lt[i]
		elif lt[i] > erda:
			erda = lt[i]
		i += 1
	return erda
lt = [1,2,3,4,8,9]

print(second_max(lt))

完整列表的排序函数(sort),支持逆序

def my_sort(lt,reverse=False):	
	for i in range(len(lt)-1):
		for j in range(i+1,len(lt)):
			if reverse:
				lt[i] < lt[j]
				lt[i], lt[j] = lt[j], lt[i]
			else: 
				lt[i] > lt[j]
				lt[i], lt[j] = lt[j], lt[i]

lt = [2, 5, 8, 1, 7, 6]

my_sort(lt, reverse=True)

号码归属地查询:

s = '''5582|1860101|010|北京市|北京联通GSM卡
5583|1860100|010|北京市|北京联通GSM卡
5584|1368141|010|北京市|北京移动神州行卡
5585|1860111|010|北京市|北京联通GSM卡
5586|1358198|010|北京市|北京移动动感地带卡
5587|1361139|010|北京市|北京移动预付费卡
5588|1361138|010|北京市|北京移动神州行卡
5591|1360110|010|北京市|北京移动全球通卡
5748|1364110|010|北京市|北京移动神州行卡'''

# 按照换行进行切割
lt = s.splitlines()

# 创建一个字典用于保存信息
guishudi = {}

for i in lt:
    # 将每一条数据按照'|'进行切割
    info_list = i.split('|')
    # 提取有效信息,保存到字典
    guishudi[info_list[1]] = info_list[-1]

while True:
    phone = input('请输入您要查询的号码,至少前7位:')
    print(phone, guishudi.get(phone))


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值