1、以下叙述正确的是(D)。
A.在循环体内使用break语句或continue语句的作用相同。
B.continue语句的作用是结束整个循环的执行。
C.从多层循环嵌套中退出时,可以使用goto语句。
D.只能在循环体内使用break语句。
执行break会结束循环,continue是跳过本次循环。
2、
k=1000
while k>1:
print(k)
k=k/2
上述代码的运行结果包含(10)个数字。
3、
for i in range(3):print(i,end=’,’)
输出:0,1,2,
4、
for i in range(2):
print(i, end='')
else:
print(0)
输出:010
for循环后接else,else在循环体正常结束后执行,如果是因为执行break结束,则不执行else
5、
n = 1
while n >= 0:
print(n)
n = n - 1
else:
print(n)
输出:
1
0
-1
6、
n = 1
while n >= 0:
n = n - 1
print(n)
else:
print(n)
输出:
0
-1
-1
7、
lst=[1,3,5,7]
for i in lst:
print(i)
if i>=5:
break
else:
print('END')
输出:
1
3
5
8、下面代码中输出结果为1,2,3三个数字的有
alist=[0,1,2]
for i in alist:
print(i+1)
i=3
while i>0:
i=i-1
print(3-i)
9、常见的控制流结构有:顺序、条件、循环。
10、
if True or False and False:
print('yes')
else:
print('no')
输出:yes
逻辑表达式里,优先级not>and>or.所以False and False得到False,True or False得到True。
——————
编程作业五
打印一定范围内的水仙花数
题目内容:
水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。
输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。
输入格式:共一行,为一个正整数。
输出格式:若干行,从小到大输出水仙花数,一行为一个数。
n=input()
for i in range(100,int(n)+1):
i=str(i)
sum=0
for j in range(len(i)):
a = int(i[j]) ** len(i)
sum += a
if sum == int(i):
print(i)
输入两个字符串,输出两个字符串集合的并集
题目内容:输入两个字符串,输出两个字符串集合的并集。
为保证输出结果一致,请将集合内元素排序之后再输出,
如对于集合aset,可输出sorted(aset)。
输入格式:共两行,每一行为一个字符串
输出格式:共一行,为一个集合
a=input()
b=input()
print(sorted(set(a+b)))
sorted()函数不修改源列表,排序后返回一个副本。
sort()方法排序时修改源列表,无返回。
与7相关的数
题目内容:
如果一个正整数,它能被7整除或者它的十进制表示法中某个位数上的数字为7,则称之为与7相关的数。
现在我们给定一个正整数n(n<1000),求所有小于等于n的与7无关的正整数的平方和。
输入格式:共一行,为一个正整数。
输出格式:共一行,为一个正整数。
a=input()
sum=0
for i in range(1,int(a)+1):
if i%7!=0 and '7'not in str(i):
sum+=i**2
print(sum)
打印完数
题目内容:
一个数如果恰好等于它的因子之和,这个数就称为"完数"。
输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。
输入格式:共一行,为一个正整数。
输出格式:若干行,从小到大输出完数,一行为一个数。
s=eval(input())
for i in range(5, s):
n = 1
sum = 0
while n < i:
if i % n == 0:
sum += n
n += 1
if sum == i:
print(i)
打印一个n层金字塔
题目内容:
打印一个n层(1<n<20)金字塔,金字塔由“+”构成,塔尖是1个“+”,下一层是3个“+”,居中排列,以此类推。
注意:每一行的+号之后均无空格,最后一行没有空格。
输入格式:一个正整数n(1<n<20)
输出格式:一个由+号构成的n层金字塔
s=eval(input())
for i in range(1,s+1):
print('%s%s'%(' '*(s-i),'+'*(2*i-1)))
回文数判断
题目内容:
给一个5位数,判断它是不是回文数,是则输出yes,不是则输出no。
例如12321是回文数,它的个位与万位相同,十位与千位相同。
输入格式:共一行,为一个5位数。
输出格式:共一行,yes或no。
s=input()
mid=int((len(s)+1)/2)-1
x=0
while mid-x>=0:
if s[mid-x]!=s[mid+x]:
print('no')
break
x+=1
else:
print('yes')
列表元素改写
题目内容:
输入一个列表alist,要求列表中的每个元素都为正整数且不超过10;
将列表中的奇数变为它的平方,偶数除以2后打印新的列表(新的列表中所有元素仍都为整数)。
同时为保证输出结果一致,请将集合内元素排序之后再输出。
如对于列表alist,可输出sorted(alist)。
输入格式:共一行,用来输入列表的元素值,以空格隔开。
输出格式:共一行,以列表形式打印输出。
alist=list(map(int,input().split()))
blist=[]
for i in alist:
if i % 2 == 0:
blist.append(i//2)
else:blist.append(i**2)
print(sorted(blist))
打印一定范围内的素数
题目内容:
给定一个大于2的正整数n,打印出小于n(不包括n且n不大于100)的所有素数。
要求将符合条件的输出填入一个列表中,打印的结果为该列表。
输入格式:共一行,为一个大于2的正整数
输出格式:共一行,为一个列表
n=eval(input())
ls=[]
for i in range(2, n ):
m = int(i ** 0.5)
j = 2
while j <= m:
if i % j == 0:
break
j += 1
if j > m:
ls.append(i)
print(ls)
筛法:
n=eval(input())
ls=[1]*n
ls[0],ls[1]=0,0
for i in range(int(n**0.5)+1):
if ls[i]==1:
ls[i*i::i]=[0]*len(ls[i*i::i])
print([i for i,j in enumerate(ls) if j==1])
猴子吃桃问题
题目内容:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天(<1<n<11)早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
输入格式:共一行,为一个大于1小于11的正整数。
输出格式:共一行,为一个正整数
d=eval(input())
def monkeypeach(d):
if d==1:return 1
d-=1
sum=(monkeypeach(d)+1)*2
return sum
print(monkeypeach(d))