为了账号安全,请及时绑定邮箱和手机立即绑定

需要运行以下在循环中运行的 If 语句

需要运行以下在循环中运行的 If 语句

慕桂英4014372 2022-09-27 15:11:14
我需要在给定的列表中找到一个特定的数字,该数字按升序排列。我已经写了所有的if语句。但不知道如何循环运行它们。支持找到一种方法,如何在循环中运行此内容以及列表中是否有数字可用。例如:list_of_number=[1,2,3,4,5,6,7]number_to_identify=6所以需要输出,6是否在列表下。但请注意,我知道我们可以直接使用“FOR”循环找到它。我想用下面的方法来计算方法需要遵循:找到中间元素并与 进行比较。根据决策(更大/更小/相等),进行输出并运行此输出,直到找到列表中是否有可用的数字。number_to_identify这是我用“If语句”写的编码。但需要循环此 If 语句以查找给定列表中的数字是否可用。list_of_number=[1,2,3,4,5,6,7]number_to_identify=6Start_Index=0End_Index=len(list_of_number)new_list=[]middle_index=(End_Index-Start_Index)/2middle_Element=list_of_number[int(middle_index)]print(middle_index)print(middle_Element)if middle_Element<number_to_identify:    Start_Index=middle_index    new_list=list_of_number[int(Start_Index):int(End_Index)]    print(new_list)elif number_to_identify<middle_Element:    End_Index=middle_index    new_list=list_of_number[int(Start_Index):int(End_Index)]    print(new_list)else:    if middle_Element==number_to_identify:        print("Number is available within the list")
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

使用 while 循环,如果找到该数字,则中断:


while True:

    middle_index = (end_index-start_index) / 2

    ...

    elif middle_element == number_to_identify:

        print("Number is in the list")

        break

顺便说一句,我重新拼写了变量以匹配Python的推荐样式


查看完整回答
反对 回复 2022-09-27
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

def identify(num,lst):

    start = int((len(lst)/2) - ((len(lst)/2) % 1))

    while True:        

        if num > lst[start]:

            start += 1

        if num < lst[start]:

            start -= 1

        if num == lst[start]:

            print("Found number at index: {0}".format(start))

            return lst[start]


list_of_number=[1,2,3,4,5,6,7]

number_to_identify=6

identify(number_to_identify, list_of_number)

这将为您解决问题。如果列表的长度是偶数,它将从中间右边的第一个元素开始。


查看完整回答
反对 回复 2022-09-27
?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

以下代码有点笨重。但它会起作用。如果需要进行任何修改,请提出建议,如果我们能使它更容易。


def find_number(list_number,num_to_check):

    Start_Index=0

    End_Index=len(list_number)-1

    new_list=list_number

    not_found=False


    while len(new_list)>2:

        middle_index=(End_Index-Start_Index)/2

        middle_Element=new_list[int(middle_index)]


        if new_list[0]==num_to_check or new_list[-1]==num_to_check:

            print("Number in List")

            break


    #If number is in Second Half of the list

        elif middle_Element<num_to_check:

            Start_Index=middle_index

            new_list=new_list[int(Start_Index):int(End_Index+1)]

            print(new_list)

            End_Index=len(new_list)

            Start_Index=0

            print(End_Index)

            not_found=False


    #If number is in First Half of the list

        elif num_to_check<middle_Element:

            End_Index=middle_index

            new_list=new_list[int(Start_Index):int(End_Index+1)]

            print(new_list)

            End_Index=len(new_list)

            print(End_Index)

            not_found=False


    #If Number is match with the middle number

        else:

            not_found=True

            break


    if not_found:

        print("Number in List")

    else:

        print("Number not in List")


l1 = [10,22,43,56,65,79,88,92,102]

n1 = 93

find_number(l1,n1)


查看完整回答
反对 回复 2022-09-27
  • 3 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号