Python跟踪,不显示索引

2024-03-28 23:06:28 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,各位,我有一个简短的问题,对你们中的一些人来说,这可能很简单,但请帮助。 假设我们有:

--- modulename: test, funcname: <module>
test.py(1): nums = [3, 1, 2, 10]
test.py(3): where = 0
test.py(5): for number in range(1, len(nums)):
test.py(7):   if nums[number] < nums[where]:
test.py(9):      where = number
test.py(5): for number in range(1, len(nums)):
test.py(7):   if nums[number] < nums[where]:
test.py(5): for number in range(1, len(nums)):
test.py(7):   if nums[number] < nums[where]:
test.py(5): for number in range(1, len(nums)):
test.py(11): answer = nums[where]
 --- modulename: trace, funcname: _unsettrace
trace.py(80):         sys.settrace(None)}

所以正如你所看到的,它没有显示我需要的输出。我需要看看每个阶段循环中的数字。有办法完成吗


Tags: answerinpytestnumberforlenif
2条回答

您需要相应地格式化它,以查看每一步的内容

nums = [33, 21, 4, 8]

where = 0

for number in range(1, len(nums)):
   print number
   if nums[number] < nums[where]:
       print where
       where = number

answer = nums[where]
print answer

在要查看输出的位置添加print语句

版本:

[root@dsp-centos ~]# python -V
Python 2.7.5
[root@dsp-centos ~]#
[root@dsp-centos ~]# python -m trace  version
trace 2.0
[root@dsp-centos ~]#

代码:

nums = [33, 21, 4, 8]

where = 0

for number in range(1, len(nums)):
   print number
   if nums[number] < nums[where]:

        where = number
        print where

        answer = nums[where]
        print answer

输出:

    [root@dsp-centos ~]# python -m trace -t a.py
  - modulename: a, funcname: <module>
a.py(3): nums = [33, 21, 4, 8]
a.py(5): where = 0
a.py(7): for number in range(1, len(nums)):
a.py(8):    print number
1
a.py(9):    if nums[number] < nums[where]:
a.py(11):         where = number
a.py(12):         print where
1
a.py(14):         answer = nums[where]
a.py(15):         print answer
21
a.py(7): for number in range(1, len(nums)):
a.py(8):    print number
2
a.py(9):    if nums[number] < nums[where]:
a.py(11):         where = number
a.py(12):         print where
2
a.py(14):         answer = nums[where]
a.py(15):         print answer
4
a.py(7): for number in range(1, len(nums)):
a.py(8):    print number
3
a.py(9):    if nums[number] < nums[where]:
a.py(7): for number in range(1, len(nums)):
  - modulename: trace, funcname: _unsettrace
trace.py(80):         sys.settrace(None)
[root@dsp-centos ~]#

相关问题 更多 >