鱼C论坛

 找回密码
 立即注册
查看: 2245|回复: 13

[已解决]Python列表一作业的最后一题

[复制链接]
发表于 2022-7-16 17:05:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想知道为什么我的代码跑不出来结果
num = []
i = 0
while(i<1000):
    n = random.randint(1,65535)
    list1=[n]
    num+=list1
    i+=1
target = input('请输入目标值:')
l = len(num)
for i in range(l):
    for j in range(i+1, l):
        if num[i] + num[j] == target:
            print([i, j])
求助各位大佬!!!
最佳答案
2022-7-16 17:20:39
本帖最后由 临时号 于 2022-7-16 17:25 编辑
import random

num = []
i = 0
while(i<1000):
    n = random.randint(1,65535)
    list1=[n]
    num+=list1
    i+=1
target = int(input('请输入目标值:'))
l = len(num)
for i in range(l):
    for j in range(i+1, l):
        if num[i] + num[j] == target:
            print([i, j])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-16 17:11:11 From FishC Mobile | 显示全部楼层
本帖最后由 qq1151985918 于 2022-7-16 17:14 编辑

如果这就是全部代码的话   可能是 第一行少了
import random
倒数第二行 改成 int(target)

评分

参与人数 1鱼币 +1 贡献 +1 收起 理由
python爱好者. + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-7-16 17:20:39 | 显示全部楼层    本楼为最佳答案   
本帖最后由 临时号 于 2022-7-16 17:25 编辑
import random

num = []
i = 0
while(i<1000):
    n = random.randint(1,65535)
    list1=[n]
    num+=list1
    i+=1
target = int(input('请输入目标值:'))
l = len(num)
for i in range(l):
    for j in range(i+1, l):
        if num[i] + num[j] == target:
            print([i, j])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2022-7-16 17:23:54 | 显示全部楼层
import random #改了这里

num = []
i = 0
while(i<1000):
    n = random.randint(1,65535)
    list1=[n]
    num+=list1
    i+=1
target = int(input('请输入目标值:')) #改了这里
l = len(num)
for each in zip(range(l),range(1,l)): #改了这里
    print(each,target)
    if num[each[0]] + num[each[1]] == target: #改了这里
        print([each[0], each[1]])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 17:26:31 | 显示全部楼层

注意你再运行完后不会出现任何结果,
这是因为你可以在运行完后查看一下 i 等于多少,是 1000 ,但应该是 0 ,
所以直接用 0 + 1 来代替......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 17:30:19 | 显示全部楼层
import random

num = []
i = 0
while(i<1000):
    n = random.randint(1,65535)
    list1=[n]
    num+=list1
    i+=1
target = int(input('请输入目标值:'))
l = len(num)
for i in range(l):
    for j in range(i+1, l):
        print(i,j,target) #检验,发现 i 一直不变
        if num[i] + num[j] == target:
            print([i, j])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 17:33:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-16 17:36:20 | 显示全部楼层

我不知道为什么,这个i在我的电脑上运行是变化的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 17:39:57 | 显示全部楼层
临时号 发表于 2022-7-16 17:36
我不知道为什么,这个i在我的电脑上运行是变化的

是变化的,但是因为我刚改的第三个错误会与之形成冲突,所以不能再用 i 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 17:52:07 | 显示全部楼层
@wp231957 帮帮忙
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 17:54:13 From FishC Mobile | 显示全部楼层
python爱好者. 发表于 2022-7-16 17:52
@wp231957 帮帮忙

可是我不知道这个题目有啥需求啊

评分

参与人数 1贡献 +3 收起 理由
python爱好者. + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-16 21:37:00 | 显示全部楼层

为啥不加这个转换就出不了结果呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 21:39:58 | 显示全部楼层
养乐多好恰 发表于 2022-7-16 21:37
为啥不加这个转换就出不了结果呢

input函数默认返回的返回值是字符串类型的,而num[i]+num[j]是整数类型
字符串类型和整数类型比较当然返回False了,所以需要将input函数返回的返回值转化为整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-16 21:42:08 | 显示全部楼层
临时号 发表于 2022-7-16 21:39
input函数默认返回的返回值是字符串类型的,而num+num[j]是整数类型
字符串类型和整数类型比较当然返回Fa ...

感谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 14:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表