python-----循环结构

水仙花数

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("找到")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值