【Python入门必看】100个精华小程序系列之八-作业

https://blog.csdn.net/PoGeN1/article/details/82251877

这个代码实现了这个功能,我感觉这个代码更像是面向对象的编程,
在这组代码中我学到了不少知识,当然也花费了不少时间查阅资料,
希望明天会更好!

知识点
def 定义函数
try/except异常处理 - 尝试并抛出程序中的异常,避免程序终止
if not语句 - 如果不是什么什么的语句跟if语句相反
isdigit方法 - 检查列表中的值是否都是数字的方法
raise函数 - 抛出异常的函数
return 函数 - 如果不加返回值则返回函数,如果加返回值则返回相对应的值,
执行后下面语句就不知行了
sort方法 - 排列列表中数字大小的方法,其中reverse=True是从大到小的排列方法
join方法 - 是将字符串拼接的方法
while True函数 - 循环一直执行
split方法 - 字符串切片的方法能将字符串切开
break函数 - 结束while循环的语句,避免造成死循环

"""
题目:
设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
"""
"""
这个功能没有实现
a = int(input("请输入随机数字:"))

numbers = input().split()

temp = ""


def find(array):
    global temp

    if len(array) == 0:
        return

    b = array[0]

    for i in array:
        if b + i < i + b:
            b = i

    temp = temp + b

    array.remove(b)

    find(array)

    return temp


print(find(numbers))
"""



# 定义函数judge(判定)
# 循环遍历列表
#     执行try函数将列表中输入的内容逐个比对
#         如果不是数字就执行NameError
#     继续执行
#         输出错误提示
#         返回程序
#
#     通过数字检测
#         使用列表中的sort的方法,利用reverse = True
#             来反转排序,让最大数字在最前
#         打印一个字符串,利用join的方法拼接l列表中的整数
#         返回程序
def judge(l):
    for i in l:
        try:
            if not i.isdigit():
                raise NameError
        except NameError:
            print("数字类型错误,请输入纯数字!")
            return 0
    else:

        l.sort(reverse=True)
        print(''.join(l))  # 拼接字符串
        return 1

# while True这句说的是永远循环
# 1首先定义l是一个空列表
# 2用l_str来接收输入的数字
# 3把l_str这个列表用split的方法切成切片,用l这个空列表来接收
# 4如果judge这个判定函数有返回值就结束程序


if __name__ == '__main__':

    while True:
        # n = input('请输入正数个数')
        l = []
        l_str = input('请依次输入数值,中间用空格分隔:')
        l = l_str.split(' ')
        if judge(l):
            break

发布了8 篇原创文章 · 获赞 0 · 访问量 1373

猜你喜欢

转载自blog.csdn.net/qy00131717/article/details/104289592
今日推荐