概述
1、水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如:153是一个“水仙花数”,因为 153 是个 3位数,而13+53+3**3==153。
输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。
max = int(input())
for i in range(100, max+1):
n = len(str(i))
a = []
sum = 0
for j in range(n):
a.append((i//10**j)%10)
sum = sum + a[j]**n
if sum == i:
print(i)
2、输入两个字符串,输出两个字符串集合的并集。
为保证输出结果一致,请将集合内元素排序之后再输出,
如对于集合aset,可输出sorted(aset)。
str1 = input()
str2 = input()
str = list(sorted(str1 + str2))
fn = []
for i in str:
if not i in fn:
fn.append(i)
print(fn)
3、与7相关的数:如果一个正整数,它能被7整除或者它的十进制表示法中某个位数上的数字为7,则称之为与7相关的数。现在我们给定一个正整数n(n<1000),求所有小于等于n的与7无关的正整数的平方和。
n = int(input())
sum = 0
for i in range(n+1):
P = 1
a = []
l = len(str(i))
for k in range(l):
a.append((i // 10 ** k) % 10)
if i%7 == 0:
continue
else:
for j in a:
if j == 7:
P = 0
break
if P != 0:
sum = sum + i**2
print(sum)
4、打印完数:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。
n = int(input())
for i in range(1, n+1):
sum = 0
for j in range (1, i):
if i % j == 0:
sum = sum + j
if sum == i:
print(i)
5、打印一个n层(1<n<20)金字塔,金字塔由“+”构成,塔尖是1个“+”,下一层是3个“+”,居中排列,以此类推。
注意:每一行的+号之后均无空格,最后一行没有空格。
n = int(input())
for i in range(1, n+1):
kong = int(((2*n-1)-(2*i-1))/2)
jia = 2*i-1
print(' '*kong, end='')
print('+'*jia)
6、给一个5位数,判断它是不是回文数,是则输出yes,不是则输出no。
例如12321是回文数,它的个位与万位相同,十位与千位相同。
n = input()
if n[0] != n[4]:
print("no")
elif n[1] != n[3]:
print("no")
else:
print("yes")
7、输入一个列表alist,要求列表中的每个元素都为正整数且不超过10;
将列表中的奇数变为它的平方,偶数除以2后打印新的列表(新的列表中所有元素仍都为整数)。
alist = list(map(int, input().split()))
blist = []
for i in alist:
if i % 2 == 1:
i = i * i
blist.append(i)
else:
i = int(i / 2)
blist.append(i)
print(sorted(blist))
8、给定一个大于2的正整数n,打印出小于n(不包括n且n不大于100)的所有素数。
要求将符合条件的输出填入一个列表中,打印的结果为该列表。
n = int(input())
alist = []
for i in range(2, n):
for j in range(2, i):
if i % j == 0:
break
else: #要满足所有循环里的条件的情况下,else很好用
alist.append(i)
print(alist)
9、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天(<1<n<11)早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
n = int(input())
sum = 1
for i in range(1, n):
sum = (sum + 1) * 2
i = i + 1
print(sum)
10、已知斐波拉契数列的前两项都是1,求第n项的值。
def fbnq(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
temp1 = 0
temp2 = 1
for i in range(2, n+1):
N = temp1 + temp2
temp1 = temp2
temp2 = N
return N
n = int(input(""))
print(fbnq(n))
题目来源:https://www.icourse163.org/learn/PKU-1003479006?tid=1461777464#/learn/announce
最后
以上就是羞涩小土豆为你收集整理的python练习题(一)的全部内容,希望文章能够帮你解决python练习题(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复