【题目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来作占位符