水仙花数
class Narcissus(): #定义类
def fun_Narc(self): #水仙花数
for i in range(100,1000):
Hundred_num = int(i/100)
Decade_num = int((i/10)%10)
Unit_num = i%10
if (Hundred_num**3)+(Decade_num**3)+(Unit_num**3) == i:
print(i,end=' ')
if __name__=='__main__':
obj = Narcissus() #初始化
print('水仙花数:')
obj.fun_Narc()
九九乘法表
print("九九乘法表:")
for i in range(1,10):
for j in range(1,i+1):
sum = i*j
print(j,"x",i,"=",sum,"\t",end=" ")
print("")
冒泡排序
A = input("请输入A的值:") #输入A的值
B = input("B请输入B的值:") #输入B的值
print("比较前:","A = ",A," B = ",B)
if A > B:
temp = A
A = B
B = temp
print("比较后:","A =",A," B = ",B)
list_a = [10,9,8,7,6,5,4,3,2,1,0]
print(list_a,"长度是:",len(list_a))
for i in range(1,len(list_a)):
for j in range(0,len(list_a)-1):
if list_a[j] > list_a[j+1]:
temp = list_a[j]
list_a[j] = list_a[j+1]
list_a[j+1] = temp
print("第",i,"次排序结果:",list_a)
print("最终从小到大排序结果是:",list_a)
折半查找:在【基本有序】的数据序列中查找某个数字
list_b = [11,22,33,44,45,46,55,66,77,88,89,90,91,99,100]
find = 25 #要查找的数字
left = 0 #序列最左侧
right = len(list_b)-1 #序列最右侧
mid = (left+right)//2 #二分、查找的中部
while left<=right:
if (find > list_b[mid]):
left = mid+1 #如果find比中部数字大,中部mid变成left,中部的mid不等于find,需要往右加1
elif (find < list_b[mid]):
right = mid-1 #如果find比中部数字小,中部mid变成right,中部的mid不等于find,需要往左减1
else:
print("找到数字了")
break; #找到数字,就可以退出while循环
mid = (left+right)//2 #重新计算中部的值
if left>right:
print("没找到数字")
折半查找:在【基本有序】的数据序列中查找某个数字,放在函数中
def SearvhNumber(find): #定义查找数字的函数
list_b = [11, 22, 33, 44, 45, 46, 55, 66, 77, 88, 89, 90, 91, 99, 100]
left = 0 # 序列最左侧
right = len(list_b) - 1 # 序列最右侧
mid = (left + right) // 2 # 二分、查找的中部
while left <= right:
if (find > list_b[mid]):
left = mid + 1 # 如果find比中部数字大,中部mid变成left,中部的mid不等于find,需要往右加1
elif (find < list_b[mid]):
right = mid - 1 # 如果find比中部数字小,中部mid变成right,中部的mid不等于find,需要往左减1
else:
return 1
mid = (left + right) // 2 # 重新计算中部的值
if left > right:
return 0
#调用函数
find = int(input("请输入要查找的数字"))
result = SearvhNumber(find) #调用函数
if (result == 0):
print("没找到")
else:
print("找到")