1.水仙花
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。
例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
那么问题来了,求1000以内的水仙花数(3位数)
思路一:
#-*-coding:UTF-8-*-
for i in range(100, 1000):
a = str(i)
b = int(a[0])
s = int(a[1])
g = int(a[2])
if (i == b * b * b + s * s * s + g * g * g):
print i
运行结果:
思路二:
for i in range(100, 1000):
b = i/100
s = (i/10)%10
g = i%10
if (i == b * b * b + s * s * s + g * g * g):
print i
运行结果:
2.打印99乘法表
for i in range(1, 10):
for j in range(1,10):
if i>= j :
print(str(i )+ "*" + str(j) + "=" + str(i*j) + "")
print ("")
Python2.7版本,print中end函数不能用,所以打印出的均换行
3.list 排序和去重
a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8]
对列表a 中的数字从小到大排序
a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8]
a.sort()
print (a)
运行结果:
利用set去重
将列表转化为集合再转化为列表,利用集合的自动去重功能。
a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8]
b = list(set(a))
print (b)
运行结果
先排序再去重
a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8]
a.sort()
print (a)
b = list(set(a))
print (b)
4.list反转与取值
如果有一个列表a=[1,3,5,7,11]
1如何让它反转成[11,7,5,3,1]
2.如果取到奇数位值的数字,如[1,5,11]
a=[1,3,5,7,11]
b = list(reversed(a))
print (b)
c = a[::-1]
print (c)
d = []
for i in range(0, len(a)):
if i%2==0:
d.append(a[i])
print (d)
5.对称数组判断
判断数组元素是否对称。例如[1,2,0,2,1],[1,2,3,3,2,1]这样的都是对称数组
用Python代码判断,是对称数组打印True,不是打印False,如:
x = [1, “a”, 0, “2”, 0, “a”, 1]
x = [1, "a", 0, "2", 0, "a",1]
for i in range(0, len(x)/2):
if(x[i]!=x[len(x)-(i+1)]):
print ("false")
break
if(i==len(x)/2-1):
print ("true")
x = [1, "a", 0, "2", 0, "b",1]
for i in range(0, len(x)/2):
if(x[i]!=x[len(x)-(i+1)]):
print ("false")
break
if(i==len(x)/2-1):
print ("true")
5.完全数
如果一个正整数等于除它本身之外其他所有除数之和,就称之为完全数。
例如:6是完全数,* 因为6 = 1+2+3;
下一个完全数是28 = 14+7+4+2+1。
求1000以下的完全数
for i in range(1, 1000):
s = 0
for j in range(1,i-1):
if i % j == 0 :
s += j
if s == i:
print (i)