每天的练习,成就强大的自己!!!欢迎大家来学习!
读入2个不超过100的非0正整数A和B,然后输出(0,A]中所有能被B整除的数。
输入格式:
输入在一行中给出2个不超过100的非零正整数A和B。
输出格式:
对每一组输入,在一行中输出(0,A]中所有能被B整除的数,数字之间用空格分隔,最后一个数字后面没有空格。 如果没有这样的数,输出“None.
while True:
try:
number=list(input().split())
A=int(number[0])
B=int(number[1])
ls= []
for i in range(1,A+1):
if i%B==0:
ls.append(i)
length=len(ls)
if length==0:
print("None.")
else:
for i in range(0,length):
if i==length-1:
print(ls[i],end="\n")
else:
print(ls[i],end=" ")
except:
break
从键盘输入一个学生所有课程的成绩,输入格式为”课程名:成绩“,每门课占一行,以空行结束。随后提示”请输入要查询的课程:“,用户从键盘输入课程名,查询并输出该课程的成绩,要求进行异常处理,对不存在的课程进行捕捉处理。
输入格式:
输入学生所有课程的成绩,每门课占一行,格式为”课程名:成绩“,以空行结束 在提示后输入课程名
输出格式:
如果课程存在,直接输出成绩,否则提示”没有该门课程“
dic=dict()
while True:
s=input()
if s=='':
break
else :
Division=list(map(str,s.split(':')))
dic[Division[0]]=Division[1]
numstr=input()
print('请输入要查询的课程:')
print(dic.get(numstr,'没有该门课程'))
题目: 编程实现查找优异生的功能——用户输入多个学生的成绩,输出总分最高的学生姓名和各科成绩
要求: 设计一个学生类(Student),包括
1)属性:姓名(name),数学成绩(mscore),语文成绩(cscore),英语成绩(escore);
2)方法:
构造方法,来构造每个具体的学生对象
计算总成绩方法getSum(self),返回三个成绩的和
获得优异生姓名,数学成绩,语文成绩,英语成绩的方法getBest(self),返回4个结果内容(优异生姓名,数学成绩,语文成绩,英语成绩)
输入格式:
通过4行输入:
第一行输入多个学生姓名,以空格分隔
第二行输入多个数学成绩,以空格分隔
第三行输入多个语文成绩,以空格分隔
第四行输入多个英语成绩,以空格分隔
注意:学生姓名个数要和成绩个数保持一致
输出格式:
在一行中,输出总分最高的学生及其各科科目成绩,以空格分隔。
class Student:
name=""
mscore=0
cscore=0
escore=0
def __init__(self,name):
self.name=name
def getSum(self):
return self.escore+self.cscore+self.mscore
def getBest(self):
max=self[0].getSum()
k=0
for i in range(0,len(self)-1):
if max<self[i].getSum():
max=self[i].getSum()
k=i
str1=(self[k].name+" "+str(self[k].mscore)+" "+str(self[k].cscore)+" "+str(self[k].escore))
return str1
name=list(input().split())
stus=[]
mscore=list(map(int,input().split()))
cscore=list(map(int,input().split()))
escore=list(map(int,input().split()))
for i in name:
stus.append(Student(i))
for j in range(0,len(stus)-1):
stus[j].mscore=mscore[j]
stus[j].cscore=cscore[j]
stus[j].escore=escore[j]
print(getBest(stus))
题目:设计一个计算器,实现一个三维向量的加法,减法以及向量和标量的乘法和除法运算
提示:
1、定义类名为 VecCal,设计构造函数创建三维向量对象: def init(self, x=0,y=0,z=0) 用x,y,z指代三个维度的值
2、重写加法(+),减法(-),乘法(* )和整除除法(//)运算,实现向量的加减乘除
3、除法运算作异常处理,当输入标量数字是0时,除法结果为 (0,0,0)
加法示例:
def add(self, n): # 加法
result = VecCal() # 定义结果变量,也是一个三维向量,通过构造函数创建
result.X = self.X + n.X
result.Y = self.Y + n.Y
result.Z = self.Z + n.Z
return result # 返回 执行加法运算后的向量结果
输入格式:
第一行输入一个三维向量,逗号分隔,如:1,2,3
第二行输入另一个三维向量,逗号分隔:如:4,5,6
第三行输入一个数字, 如:3
输出格式:
(1, 2, 3) + (4, 5, 6) = (5, 7, 9)
(1, 2, 3) - (4, 5, 6) = (-3, -3, -3)
(1, 2, 3) * 3 = (3, 6, 9)
(1, 2, 3) / 3 = (0, 0, 1)
class VecCal(object):
def __init__(self, x=0, y=0, z=0):
self.X = x
self.Y = y
self.Z = z
def __add__(self, n):
result = VecCal()
result.X = self.X + n.X
result.Y = self.Y + n.Y
result.Z = self.Z + n.Z
return result
def __sub__(self, n):
result = VecCal()
result.X = self.X - n.X
result.Y = self.Y - n.Y
result.Z = self.Z - n.Z
return result
def __mul__(self, n):
result = VecCal()
result.X = self.X * n
result.Y = self.Y * n
result.Z = self.Z * n
return result
def __floordiv__(self, n):
result = VecCal()
result.X = self.X // n
result.Y = self.Y // n
result.Z = self.Z // n
return result
def __str__(self):
return '({0}, {1}, {2})'.format(self.X, self.Y, self.Z)
num1 = VecCal(*map(int, input().split(',')))
num2 = VecCal(*map(int, input().split(',')))
n = int(input())
print(num1, '+', num2, '=', num1 + num2)
print(num1, '-', num2, '=', num1 - num2)
print(num1, '*', n, '=', num1 * n)
if n != 0:
print(num1, '/', n, '=', num1 // n)
else:
print(num1, '/', n, '=', '(0, 0, 0)')
输入整数n,1<=n<=10,输出n行n列图案。
输入格式:
输入一个整数
输出格式:
输出图案,图案中的每个数所占宽度为4
n = int(input())
for i in range( n ):
for j in range( n ):
num = i
if i > j:
num = j
print('%4d'%(num+1),end="")
print('')
输入两个正整数m和n,且m 输入格式: 分行输入m和n 输出格式: 输出可逆素数列表 在一行上输入两个字符串s和英文字符串t,要求在s中查找t。其中,字符串s,t均不包含空格,且长度均小于80。 输入格式: 首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个长度不超过80的字符串s和t(s和t都不包含空格)。 输出格式: 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 每行输入一个数字 输出格式: 每行输出一个数字 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
m=int(input())
n=int(input())
list1=[]
list2=[]
t=0
k=''
if m<n:
for i in range(m,n+1):
f=0
t=0
for j in range(2,i):
if i%j==0:
f=f+1
if f==0:
list1.append(i)
for i in list1:
t=0
k=int(str(i)[::-1])
for j in range(2,k):
if k%j==0:
t=t+1
if t==0:
list2.append(i)
if len(list2)==0:
print('no exit')
else:
print(list2)
else:
("ERROR!")
七、查找字符串
八、数字交换
输入格式,
def inp(numbers):
for i in range(6):
numbers.append(int(input('输入一个数字:\n')))
p = 0
def arr_max(array):
max = 0
for i in range(1,len(array) - 1):
p = i
if array[p] > array[max] : max = p
k = max
array[0],array[k] = array[k],array[0]
def arr_min(array):
min = 0
for i in range(1,len(array) - 1):
p = i
if array[p] < array[min] : min = p
l = min
array[5],array[l] = array[l],array[5]
def outp(numbers):
for i in range(len(numbers)):
print (numbers[i])
if __name__ == '__main__':
array = []
inp(array) # 输入 6 个数字并放入数组
arr_max(array) # 获取最大元素并与第一个元素交换
arr_min(array) # 获取最小元素并与最后一个元素交换
print ('计算结果:')
outp(array)
九、数字移动
if __name__ == '__main__':
n = int(input('整数 n 为:\n'))
m = int(input('向后移 m 个位置为:\n'))
def move(array,n,m):
array_end = array[n - 1]
for i in range(n - 1,-1,- 1):
array[i] = array[i - 1]
array[0] = array_end
m -= 1
if m > 0:move(array,n,m)
number = []
for i in range(n):
number.append(int(input('输入一个数字:\n')))
print ('原始列表:',number)
move(number,n,m)
print ('移动之后:',number)
十、报数
if __name__ == '__main__':
nmax = 50
n = int(input('请输入总人数:'))
num = []
for i in range(n):
num.append(i + 1)
i = 0
k = 0
m = 0
while m < n - 1:
if num[i] != 0 : k += 1
if k == 3:
num[i] = 0
k = 0
m += 1
i += 1
if i == n : i = 0
i = 0
while num[i] == 0: i += 1
print (num[i])