cari
Rumahpembangunan bahagian belakangTutorial Pythonpython程序的运行过程如何理解?

本篇文章给大家带来的内容是关于python程序的运行过程如何理解?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

了解代码的执行过程是编程的基本要求。一个熟练的编程老手只需要用肉眼看着代码,就能对其运行的过程有所了解。然而对于刚接触编程不久的新手来说,这种事情就没那么显而易见了。于是在编写代码和调试代码时,一旦程序的逻辑有些复杂,就像掉进代码的迷宫,完全不知道东南西北。

所以,每当有人对自己的代码没有给出预想结果而百思不得其解,无奈寻求帮助时,我都会建议在程序中增加输出,一方面是根据不同输出的先后顺序来判断程序的运行路径,另一方面则是观察各变量在运行过程中的实际数值,确认是在哪里发生了错误。

还有种方法就是使用 IDE 提供的调试功能,通过添加断点和单步运行,了解程序的运行状态。Visual Studio、Eclipse、xCode 等常见的 IDE 几乎都提供了调试工具。对于 Python,也可以使用 pdb 库来实现断点调试。

上述两种途径应该是大部分程序员 debug 时候的基本套路。但同样的,对于新手来说,即使这样的工具,用起来仍然有些费力。

有时我会选择在纸上画出一些流程和图形来向人解释程序,虽然效果会好些,但显然不是一种可以广泛推广的方式。后来意外发现有一款工具满足了此类需求,非常适合新手,可以让你直观地“看”出程序是怎么运行的。对于初学编程,难以理解程序运行过程的苦手来说,绝对可称之为“神器”。

这就是 Online Python Tutor 。一款免费的在线代码运行及演示工具。

项目地址:pythontutor.com

关于此项目的介绍(摘自网络,出处未知):

Online Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在 Web 浏览器中编写 Python 代码,并一步一步可视化地执行程序。

截至 2013 年 12 月,来自 165 个国家和地区共 50 万多人使用了这个在线工具,通常是用作教材、讲义或在线编程指南的补充。每天共执行和演示超过 6,000 段 Python 程序。除了自学的初学者,Online Python Tutor 的用户还包括了那些参加 Coursera、edX 和 Udacity 等在线课程的学生,还有诸如 MIT、UC 伯克利等高校的教师。

  • Python Tutor 支持 2.7 和 3.3 两个版本的 Python。

  • 除了 Python 外,还可运行 Java、JavaScript、TypeScript、Ruby,另外也有支持 C、C++ 的版本。

  • 可以通过一行 JS 代码,把此工具嵌入到你自己的页面中。

  • 也可以生成链接,把你的代码直接分享给别人。

  • 附带单元测试功能。

  • 网站上还提供了很多的实例,其中包括一些比较经典的算法。

再来体验一下其使用过程:

在编辑器里输入代码,点击 “Visualize Execution” 即可运行并演示。

import random

def fn(x):
    return x**2

result = []
for i in range(3):
    t = random.randint(1, 10)
    print t
    r = fn(t)
    result.append(r)
print result

我用了段包含循环、列表、函数、模块的代码片段。看看效果如何:

3002374725-5bcac9b6bbd87_articlex.jpg

左上是代码,箭头表示当前运行到的位置。

通过下面的按钮和进度条可以直接控制程序的进行。

左下是输出。

右边就是程序的可视化模拟。在这个例子里,可以清楚地看到过程中变量的变化,何时调用了函数等信息。

不过同很多在线运行环境一样,Python Tutor 不支持运行过程中的输入功能。所以没法把我们的猜数字或是罚点球的小游戏直接放上去运行。希望以后能够增加此功能。

借助 Python Tutor,可以更轻松地理解一些算法。最后放一个冒泡排序的实现,[](http://crossin-forum.b0.upaiy...

298246201-5bcac9b6d28fc_articlex.jpg

Atas ialah kandungan terperinci python程序的运行过程如何理解?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:segmentfault思否. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Apakah jenis data yang boleh disimpan dalam array python?Apakah jenis data yang boleh disimpan dalam array python?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype, arraymoduleArraysstoreonetype, andnumpyarraysarefornumumericalcomputations.1) listsareversatileButlessMememory-efficient.2) arraymoduleArduleArrayRaysarememory-efficientforhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogenhomogen

Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apa yang berlaku jika anda cuba menyimpan nilai jenis data yang salah dalam array python?Apr 27, 2025 am 12:10 AM

KetikayyoUttemptToStoreAveFheWrongatatypeinapythonArray, anda akan menjadicounteratypeerror

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array?Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Apa yang perlu anda periksa jika skrip dijalankan dengan versi Python yang salah?Apa yang perlu anda periksa jika skrip dijalankan dengan versi Python yang salah?Apr 27, 2025 am 12:01 AM

Thescriptisrunningwiththewrongpythonversionduetoincorrectdefault interpretsettings

Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations: 1) SlicingExtractsSubsets, 2) Menambah/ExtendingAddSelements, 3) InsertingPlaceSelementSatSatSatSpecifics, 4) RemovingDeleteselements, 5) Sorting/ReversingChangesOrder,

Dalam jenis aplikasi yang biasa digunakan oleh numpy?Dalam jenis aplikasi yang biasa digunakan oleh numpy?Apr 26, 2025 am 12:13 AM

NumpyarraysareessentialforapplicationRequiringeficientnumericalcomputationsanddatamanipulation.theyarecrucialindaSascience, machinelearning, fizik, kejuruteraan, danfinanceduetotheirabilitytOHandlelarge-Scaledataefisien.Forexample, infinancialanal

Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Apr 26, 2025 am 12:12 AM

UseanArray.arrayoveralistinpythonwhendealingwithhomogeneousdata, criticalcode prestasi, orinterfacingwithccode.1) homogeneousdata: arrayssavemememorywithtypedelements.2)

Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Apr 26, 2025 am 12:05 AM

Tidak, notalllistoperationsaresuportedByArrays, andviceversa.1) arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing, whyimpactsperformance.2) listsdonotguaranteeconstantTimeComplexityFordirectacesscesscesscesscesscesscesscesscesscesessd.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa