python编程输入一批从小到大的整数,以回车结束,存入列表中。再输入一个要查找的数,输出此数在列表中的索引位置,如不存在则输出-1。用扫描法或者二分法都可以。【样例输入输出】 Enter a number (<Enter> to quit):1 Enter a number (<Enter> to quit):2 Enter a number (<Enter> to quit):5 Enter a number (<Enter> to quit):6 Enter a number (<Enter> to quit):8 Enter a number (<Enter> to quit):10 Enter a number (<Enter> to quit): Enter a number searched:8 4 【样例说明】8在列表索引值为4的位置上
时间: 2023-12-06 10:39:35 浏览: 44
以下是实现该功能的代码,其中采用了二分法:
```python
nums = []
print("Enter a number (<Enter> to quit):")
while True:
num = input()
if num == "":
break
nums.append(int(num))
print("Enter a number searched:")
target = int(input())
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
print(mid)
break
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
else:
print(-1)
```
运行程序后,按照提示输入一批从小到大的整数,以回车结束,再输入一个要查找的数,即可得到该数在列表中的索引位置,如不存在则输出-1。
相关问题
python二分法,输入一批从小到大的整数,以回车结束,存入列表中。再输入一个要查找的数,输出此数在列表中的索引位置,如不存在则输出-1
下面是Python实现二分查找的代码,实现在输入一批从小到大的整数,以回车结束,存入列表中。再输入一个要查找的数,输出此数在列表中的索引位置,如不存在则输出-1。
```
def binary_search(nums, target):
"""
二分查找
nums: 有序列表
target: 要查找的数
return: 目标数在列表中的索引位置,如果不存在则返回-1
"""
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# 输入一批从小到大的整数,以回车结束,存入列表中
num_list = []
while True:
num_str = input("请输入一个整数(回车结束):")
if num_str == "":
break
num = int(num_str)
num_list.append(num)
# 输入要查找的数
target_str = input("请输入要查找的数:")
target = int(target_str)
# 在列表中查找目标数的索引位置
index = binary_search(num_list, target)
if index != -1:
print("目标数在列表中的索引位置为:", index)
else:
print("目标数不存在于列表中。")
print("-1")
```
运行程序后,按照提示输入一批从小到大的整数,以回车结束,再输入要查找的数,即可得到目标数在列表中的索引位置,或者提示目标数不存在于列表中。
输入一批从小到大的整数,以回车结束,存入列表中。再输入一个要查找的数,输出此数在列表中的索引位置,如不存在则输出-1
好的,以下是Python代码实现:
```
# 输入一批从小到大的整数,以回车结束,存入列表中
num_list = []
while True:
num_str = input("请输入一个整数(回车结束):")
if num_str == "":
break
num = int(num_str)
num_list.append(num)
# 输入要查找的数
target_str = input("请输入要查找的数:")
target = int(target_str)
# 在列表中查找目标数的索引位置
if target in num_list:
index = num_list.index(target)
print("目标数在列表中的索引位置为:", index)
else:
print("目标数不存在于列表中。")
print("-1")
```
运行程序后,按照提示输入一批从小到大的整数,以回车结束,再输入要查找的数,即可得到目标数在列表中的索引位置,或者提示目标数不存在于列表中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)