云计算工坊:测试1 答案
简单循环
十进制整数转二进制
描述
十进制整数转二进制的方法是:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序即可得到对应的二进制数的各位。
例如:22转二进制的计算过程:
22 / 2 11 余0 11/2 5 余 1 5 /2 2 余 1 2 /2 1 余 0 1 /2 0 余 1
得到22的二进制是10110
输入格式
输入一个正整数
输出格式
输出对应的二进制数
代码
num = int(input()) s='' if num==0: s='0' while num!=0: s=s+str(num%2) # 将num对2取余的结果转字符串拼接到s num = num//2 print(s[::-1]) # 逆序输出字符串
百钱买百鸡A
描述
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
输入格式
该题目没有输入
输出格式
每行输出一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔;
如果有多组解时,按鸡翁数量由少到多输出;
代码
for x in range(1,20): # x不为0,初值设1 for y in range(1,34): # y不为0,初值设1 z=100-x-y if z != 0 and z%3==0 and 5*x+3*y+z//3==100: #z不为0,同时满足总价百钱 print(x,y,z)
集合
字符串去重排序
描述
输入一个非空字符串,去除重复的字符后,从小到大排序输出为一个新字符串。
输入
一个非空字符串
输出
去重排序后的字符串
代码
ls = list(set(input())) # 字符串转集合去重,再转为列表 ls.sort() # 列表排序 print(''.join(ls)) # 列表中的字符串元素连接为一个字符串
字符串
统计单词的数量
描述
输入一个英文句子,以回车符结束,单词间以空格分隔,标点符号后跟至少一个空格,统计并输出单词的个数(仅统计单词,数字按单词计,不计算标点符号,重复单词出现几次就统计几次)。
输入
一个英文句子
输出
一个整数,单词数量
输入输出示例
输入 输出 示例 1 Life is short, you need Python! 6
代码
#约定字符串的单词之间用空格分隔,标点符号后跟一个空格 s = input() ls = s.split() print(len(ls))
简单分支
今年多少天
描述
闰年366天,其他年份365天。普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
用户输入一个正整数,代表年份,输出该年有多少天?
输入格式
输入一个正整数,表示年份
输出格式
该年的天数
代码
year = int(input()) if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0): #能被400整除是闰年;能被4带队且同时不能被100整除的是闰年 print(366) else: print(365)
列表元组
求平均成绩
描述
输入用空格分隔的两个正整数n和m,表示后面要接收m个人的n门课的成绩的输入。随后的m行,每行输入用空格分隔的n个成绩。题目保证m和n都在(0-100]之间。请分行输出每门课的平均成绩。
输入
第一行输入用空格分隔的两个正整数n和m
随后的m行,每行输入用空格分隔的n个成绩。
输出
分行输出每门课的平均成绩
代码
# 可用以下一行语句完成 # [print(sum(i) / len(i) ) for i in zip( *[map(float, input().split()) for i in range(int(input().split()[1]))])] n, x = map(int, input().split()) sheet = [] for i in range(x): sheet.append(map(float, input().split()) ) for i in zip(*sheet): print( sum(i)/len(i) )