Python|三个数从小到大输出

a,b,c=[int(x)for x in input('输入三个整数:').split()]
if a>b:
    t=a
    a=b
    b=t
    # 如果a>b,a和b换位置,a是小的数
    if a>c:
        t=a
        a=c
        c=t
        # 如果a>c,a和c换位置,a是最小的数,此时最小的数已经出来了
        if b>c:
            t=b
            b=c
            c=t
    print(a,b,c)

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python根据需求完成一个TXT解析器的简单开发 一 修改说明: 需求一: 一开始说要解析UECapabilityInfo 消息里的supportedBandCombination-r10 这个IE里的CA组合转化成易阅读的表现形式. 我以为一组CA组合就是一组: bandEUTRA-r10 ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 功能实现: 有效信息筛选:于是就用循环把UECapabilityInformation的据里每一行作为一个元素放到list里面 然后用bandEUTRA-r10作为一组CA的识别信息、在筛选出同组ca-BandwidthClassUL-r10、ca-BandwidthClassDL-r10、supportedMIMO-CapabilityDL-r10的信息,添加保存到字符串中,然后再把字符串作为元素添加到list中去。最后遍历list的元素写入目标文件 需求二: 然后收到反馈CA组合的理解是错误的。一组CA组合应该是以大括号作为识别的,里面可能包含多组: bandEUTRA-r10: ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 CA组合识别原理:在查看UECapabilityInformation内的CA组合后 发现CA组合内第一个 bandEUTRA-r10因为比其他bandEUTRA-r10多了一层的CA组合的大括号,所以如果给每一行增加索引的话就会发现除了第一个bandEUTRA-r10,其他bandEUTRA-r10到上一个supportedMIMO-CapabilityDL-r10的距离都是一样的,为了减少复杂度,我删除了所有’{’,这样所有除了所有CA组合第一个bandEUTRA-r10往上第四行是’}’其他bandEUTRA-r10的往上第四行都是supportedMIMO-CapabilityDL-r10 功能实现: 添加索引:便利时用了for enumerate()循环,这样便利时可以在循环时,自动为每个元素生成索引 CA组合识别:在识别到bandEUTRA-r10时,增加一个判断if datalist1[index-4].startswith(),如果bandEUTRA-r10的往上第四行是supportedMIMO-CapabilityDL-r10说明同组CA未结束,把筛选的有效信息强制类型转换后添加在上个元素末尾,反之则说明是个新的CA组合,往列表里添加一个新的元素。 需求三: 之后收到反馈CA组合虽然识别了,但是排序不行,需要按照CA组合支持的band进行排序 功能实现: 排序:于是我在识别完CA组合后,增加了一个循环和count(),用CA组合里的’-’给它们归类 比如1AA,11A,21AA是一类;1A-1A,2A-1AA,3A-1A是一类 在用一个中间变量保存开头的band的字,一个类中把开头支持band的字字母相同的CA组合归为一行 比如1A-21A,1A-22A一类1AA-2AA 1AA-3AA为一类 需求四: 之后收到反馈,CA组合分类不能只按照开头比较分类,不然一但据多了会对查阅带来极大不便,应该按照每组CA组合中bandEUTRA-r10的值进行判断,比如1AA-2AA,1A-2AA和1AA-2A应该归在同一行 实现原理:首先我想的是按位比较字,但是因为字母的量不稳定,字的位置不一定对应,然后我就想把字全部提取出来作为索引,在相应的索引后面添加同组元素,用dict来实现排序。难点就在于从字符串中提取字。后来在python的正则表达式中找到相关的处理函compile()(设置匹配对象类型)和findall()(找到所有匹配对象并以list返回)。 功能实现: 第二次排序:在上次的排序中我保留了分类和从小到大的排序。方便提取索引时,索引也是从小到大。每遍历一个元素(CA组合有效信息),就compile()和findall(),从该元素中提取字组合(在compile()的参中添加()就能够使提取的内容成为一组据),然后通过dict自带函setdefault()添加索引,并可以设置索引值为list类型(dict类型的索引的值不可变,但如果类型为list,list的内容可以进行改动),避免重复索引,在本次遍历中完成将元素添加到索引值对应的list中去 需求五: 之后对程序进行测试,在测试test2时发现layers增加了fourlayers类型后,用来代表layers的字2和4会影响分类结果。比如1AA(2)-1AA(2)和1A(4)-1A(2)会被归为两类。 test1:当CA组合的格式为xx-xx-xx-xx-xx(最长可识别为五位元素的组合,再长就需要修改代码) test2:当CA组合包含fourLayers test3:当CA组合缺失某种格式比如xx-xx时发现layers增加了fourlayers 功能实现: : 解除layers对排序的影响:用II 和 IV替代2,4来表示layers,测试后不影响阅读与分类 二、整体程序架构: 1.通过循环和自带的startswith()先将每组CA组合的有效信息识别 2.通过sorted()函将所有CA组合从小到大排列 3.通过count()函将所有CA组合根据格式不同分类 4.通过循环和正则表达式的split()对所有CAlist据进行处理(用split处理只是防止出现不必要的错误) 5.通过循环和正则表达式compile()和findall()识别所有CA组合中字,并将同一组合中的字合为一个元素(在同一循环,用这个字的元素作为一个dict的索引),用dict自带的setdefault()进行Key的添加顺便设置Key的值为list,避免Key重复,在用append把当前Key的字符串,添加到Key对应值的list中去 6.最后对dict整体遍历,将每一个Key的值输出到文本中去。
### 回答1: 可以使用Python的列表和sort()函来实现输入三个从小到大输出的功能。具体代码如下: ```python nums = [] # 定义一个空列表 # 循环输入三个 for i in range(3): num = int(input("请输入第%d个:" % (i+1))) nums.append(num) # 将输入添加到列表中 nums.sort() # 对列表进行排序 print("从小到大排序后的结果为:", nums) # 输出排序后的结果 ``` 运行结果如下: ``` 请输入第1个:5 请输入第2个:2 请输入第3个:8 从小到大排序后的结果为: [2, 5, 8] ``` 以上代码中,首先定义了一个空列表nums,然后使用for循环输入三个,并将它们添加到列表中。接着使用sort()函对列表进行排序,最后输出排序后的结果。 ### 回答2: 首先,我们需要了解python中如何输入三个。可以使用input()函进行输入,每一个字需要单独输入并使用逗号隔开,如下所示: a, b, c = input("请输入三个字,用逗号隔开:").split(",") 这样就可以把输入三个分别存放在变量a、b、c中了。 接下来,我们需要比较这三个的大小,然后进行排序。可以使用if语句来比较大小,如下所示: if a > b: a, b = b, a if b > c: b, c = c, b if a > b: a, b = b, a 这里使用了交换法进行排序,每次比较两个相邻的,如果前一个比后一个大,则交换这两个。通过三次比较和交换,就可以把输入三个从小到大排列了。 最后,我们可以使用print()函输出结果,如下所示: print("从小到大的排序结果为:", a, b, c) 这样就可以在控制台上输出排序后的结果了。 完整代码如下所示: a, b, c = input("请输入三个字,用逗号隔开:").split(",") if a > b: a, b = b, a if b > c: b, c = c, b if a > b: a, b = b, a print("从小到大的排序结果为:", a, b, c) ### 回答3: Python中可以使用input()函来获取用户输入据,再利用split()方法将输入的字符串按照空格分隔成一个列表类型。然后通过对这个列表进行排序,再输出即可实现从小到大输出三个。 具体步骤如下: 1. 通过input()函接收用户输入三个,将输入的字符串按照空格分隔成一个列表。 ``` nums = input("请输入三个,用空格隔开:").split() ``` 2. 将列表中的字符串转换成整数类型,便于进行比较和排序操作。 ``` nums = [int(num) for num in nums] ``` 3. 对这个列表进行从小到大排序。 ``` nums.sort() ``` 4. 依次输出排序后的列表元素。 ``` print("从小到大排序结果为:", end="") for num in nums: print(num, end=" ") ``` 完整代码如下: ``` nums = input("请输入三个,用空格隔开:").split() # 输入三个,用空格隔开,然后以列表形式返回 nums = [int(num) for num in nums] # 将列表中的字符串转换成整数类型 nums.sort() # 从小到大排序 print("从小到大排序结果为:", end="") # 打印提示信息 for num in nums: # 遍历排序后的列表元素 print(num, end=" ") # 输出结果 ``` 这样就实现了从小到大输出三个的操作。如果输入不是三个,或者输入的字符串不能转换成整数类型,都会导致程序出错。因此,还需要进行参检查和异常捕获。如下面所示: ``` try: nums = input("请输入三个,用空格隔开:").split() if len(nums) != 3: print("输入错误,请输入三个!") else: nums = [int(num) for num in nums] nums.sort() print("从小到大排序结果为:", end="") for num in nums: print(num, end=" ") except ValueError: print("输入错误,只能输入整数!") ``` 这样就可以避免程序在输入不符合要求的情况下而崩溃。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值