1.冒泡排序
#sort.py
def Sort(list):
for j in range(len(list) - 1):
count = 0
for i in range(0,len(list) - 1 - j):
if list[i] > list[i + 1]:
list[i],list[i + 1] = list[i + 1],list[i]
count += 1
if 0 == count:
break
if __name__ == '__main__':
#list = [12,454,13134,545413,1354546,354346,435421]
number = input('请输入一串数字:')
list = list(map(int, list(number)))
print(list)
Sort(list)
print("排列后的数据:",end="")
print(list)
运行结果:
2.二分法查找
def BinarySearchRe(alist,item):
n = len(alist)
start,end = 0,n-1
while start <= end:
mid = ( end + start ) // 2
if alist[mid] == item:
for j in range(mid):
if alist[j] != alist[mid]:
mid = j + 1
break
else:
mid = j
continue
return mid
elif item <alist[mid]:
end = mid - 1
else:
start = mid + 1
return False
if __name__ == '__main__':
alist = [12,12,12,24,32,39,43,67,90]
print( "结果为:" , BinarySearchRe( alist , 12 ) )
print( "结果为:" , BinarySearchRe( alist , 67 ) )
运行结果:
3.水仙花数问题:
def Narcissistic(min,max):
list = []
count = 0
for num in range(min,max):
g = int(num % 10)
s = int(num / 10 % 10)
b = int(num / 100)
mid = g**3 + s**3 + b**3
if num == mid:
list.append(num)
count = count + 1
return list,count
if __name__ == "__main__":
min = 100
max = 999
list,count = Narcissistic(min,max)
print("有",count,"個水仙花數:",list)
运行结果:
4.斐波那契数列(新生兔子问题)
#Fibonacci.py
#传统方法
def fun1(n):
f1 , f2 = 1 , 1
for i in range(3,n+1):
f = f2
f2 = f1 + f2
f1 = f
return f2
#递归方法
def fun2(n):
if n == 1 or n == 2 :
return 1
else:
return fun2( n - 1 ) + fun2( n - 2 )
if __name__ == '__main__':
print("第24个月一共有",fun1(24),"只兔子")
print("第24个月一共有",fun2(24),"只兔子")
运行结果:
5.打印乘法口诀(正常打印和一句代码打印)
def fun1():
print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x * y) for y in range(1, x + 1)]) for x in range(1, 10)]))
def fun2():
list = []
for x in range(1, 10):
list2 = []
for y in range(1, x + 1):
list2.append('%s*%s=%-2s' % (y, x, x * y))
list.append(' '.join(list2))
print('\n'.join(list))
if __name__ == '__main__':
print("一行代码打印三角形:")
fun1()
print("正常代码打印三角形:")
fun2()
打印结果: