Python编程基础题(5-顺序结构基础2)

【题目1】求三个整数的最大值
请编写程序,在一行上输入三个整数,整数间用逗号分隔,求出其中的最大值并输出。

string=input()
number=string.split(",")
print(number)
print("{0}".format(max(number)))

注意:上面程序中的number为列表类型,例如输入“1,3,5”,则number=[‘1’,‘3’,‘5’],元素的类型是字符串而非整型,所以如果不进行类型转换,在控制输出时用%d就会报错。

【题目2】相加和最大
输入三个整数a,b,c,用空格分开,并进行两两相加,最后输出两两相加后的最大值。

string=input()
a,b,c=map(int,string.split())
sum=[]
sum.append(a+b)
sum.append(b+c)
sum.append(a+c)
print(max(sum))

注意:上面程序没有使用选择结构,而是用列表的内置函数求最大值;构建列表时也是将两个元素的运算结果追加到列表中,使用append方法

【题目3】十六进制数输出和占位
输入一个int范围内的正整数 a 。按如下要求输出: 第一行按原样输出, 第二行以十六进制输出(字母小写), 第三行以十六进制输出(字母大写)。

a = int(input())
b = hex(a)
c = b[2::]
print(a)
print(c)
print(c.upper())

Python中的内置函数hex()功能是将参数(整数)转换为十六进制,输出结果为字符串,但是输出的字符串会添加前导“0x”,所以要按照题目的格式输出,需要使用字符串的切片,即只输出下标2以后的字符。需要大写再使用upper方法转换即可。

【题目4】八进制数输出和占位
输入一个int范围内的正整数 a,按如下要求输出:第一行按原样输出, 第二行以八进制靠右输出,不足 8 位左补 0 并在两端添加星号包裹, 第三行以八进制靠左输出,不足 8 位右补空格并在两端添加星号包裹。

a = int(input())
b = oct(a)
c = b[2::]
print(a)
if len(c) < 8:
    print('*', end='')
    for i in range(0, 8 - len(c)):
        print('0', end='')
    print(c + '*', end='\n')
    print('*' + c, end='')
    for i in range(0, 8 - len(c)):
        print(' ', end='')
    print('*', end='\n')
else:
    print('*' + c + '*')

上题中内置函数oct()表示将一个整型转换为八进制字符串,包含前导“0o”,仍然需要字符串切片;考虑到转换后的结果是字符串,所以后面需要手动添加0来控制输出:print函数后面的参数end表示输出结尾的形式,默认输出一行以后换行,但是要在一行且无空隙地输出,那么置参数为空即可。

【题目5】十进制输入输出和其它非空格占位
输入一个int范围内的正整数 a,请你按如下要求输出:第一行按原样输出,第二行整数靠右原样输出,不足 8 位左补 0 并在两端添加星号包裹,第三行整数靠左原样输出,不足 8 位右补空格并在两端添加星号包裹。

a = int(input())
print("%d" % (a))
print("*%08d*" % (a))
print("*%-8d*" % (a))

上题中%08d表示指定用0来作占位符

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值