为什么使用Python?超详细的Python入门教程。

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情


前言

Python由荷兰数学和计算机科学研究学会 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。


在这里插入图片描述

为什么使用Python

假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200.

思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是"Reply from … " 而不通的时候文本是"time out … " ,所以,在结果中进行字符串查找,即可知道该机器是否连通.

实现:Java代码如下:

String cmd="cmd.exe ping ";
String ipprefix="192.168.10."; int begin=101; int end=200;
Process p=null; for(int i=begin;i<end;i++){
     p= Runtime.getRuntime().exec(cmd+i);
     String line = null;
     BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
     while((line = reader.readLine()) != null)
     {
         //Handling line , may logs it.  }
    reader.close();
    p.destroy();
} 

这段代码运行得很好,问题是为了运行这段代码,你还需要做一些额外的工作.这些额外的工作包括:

  • 编写一个类文件
  • 编写一个main方法
  • 将之编译成字节代码
  • 由于字节代码不能直接运行,你需要再写个小小的bat或者bash脚本来运行.

当然,用C/C++同样能完成这项工作.但C/C++不是跨平台语言.在这个足够简单的例子中也许看不出C/C++和Java实现的区别,但在一些更为复杂的场景,比如要将连通与否的信息记录到网络数据库.由于Linux和Windows的网络接口实现方式不同,你不得不写两个函数的版本.用Java就没有这样的顾虑.

同样的工作用Python实现如下:

 import subprocess
cmd="cmd.exe" begin=101 end=200  while begin<end:
    p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,
                   stdin=subprocess.PIPE,
                   stderr=subprocess.PIPE)
    p.stdin.write("ping 192.168.1."+str(begin)+"\\n")
    p.stdin.close()
    p.wait()
    print "execution result: %s"%p.stdout.read() 

对比Java,Python的实现更为简洁,你编写的时间更快.你不需要写main函数,并且这个程序保存之后可以直接运行.另外,和Java一样,Python也是跨平台的.

有经验的C/Java程序员可能会争论说用C/Java写会比Python写得快.这个观点见仁见智.我的想法是当你同时掌握Java和Python之后,你会发现用Python写这类程序的速度会比Java快上许多.例如操作本地文件时你仅需要一行代码而不需要Java的许多流包装类.各种语言有其天然的适合的应用范围.用Python处理一些简短程序类似与操作系统的交互编程工作最省时省力.

Python应用场合

足够简单的任务,例如一些shell编程.如果你喜欢用Python设计大型商业网站或者设计复杂的游戏,悉听尊便.

Hello world

安装完Python之后(我本机的版本是2.5.4),打开IDLE(Python GUI) , 该程序是Python语言解释器,你写的语句能够立即运行.我们写下一句著名的程序语句:

print "Hello,world!"

并按回车.你就能看到这句被K&R引入到程序世界的名言.

在解释器中选择"File"–“New Window” 或快捷键 Ctrl+N , 打开一个新的编辑器.写下如下语句:

print "Hello,world!"
raw\_input("Press enter key to close this window! ");

保存为a.py文件.按F5,你就可以看到程序的运行结果了.这是Python的第二种运行方式.

找到你保存的a.py文件,双击.也可以看到程序结果.Python的程序能够直接运行,对比Java,这是一个优势.

国际化支持

我们换一种方式来问候世界.新建一个编辑器并写如下代码:

print "欢迎来到奥运中国!" 
raw\_input("Press enter key to close this window!");

在你保存代码的时候,Python会提示你是否改变文件的字符集,结果如下:

\# -\*- coding: cp936 -\*-
print "欢迎来到奥运中国!" 
raw\_input("Press enter key to close this window! ");

将该字符集改为我们更熟悉的形式:

\# -\*- coding: GBK -\*-
print "欢迎来到奥运中国!" # 使用中文的例子 
raw\_input("Press enter key to close this window");

程序一样运行良好.

便易用的计算器

用微软附带的计算器来计数实在太麻烦了.打开Python解释器,直接进行计算:

a=100.0 
b=201.1 
c=2343 
print (a+b+c)/c 

字符串,ASCII和UNICODE

可以如下打印出预定义输出格式的字符串:

print """ Usage: thingy \[OPTIONS\]
     -h                        Display this usage message
     -H hostname               Hostname to connect to """

字符串是怎么访问的?请看这个例子:

word="abcdefg" a=word\[2\]
print "a is: "+a
b=word\[1:3\]
print "b is: "+b # index 1 and 2 elements of word.
c=word\[:2\]
print "c is: "+c # index 0 and 1 elements of word.
d=word\[0:\]
print "d is: "+d # All elements of word.
e=word\[:2\]+word\[2:\]
print "e is: "+e # All elements of word.
f=word\[-1\]
print "f is: "+f # The last elements of word.
g=word\[-4:-2\]
print "g is: "+g # index 3 and 4 elements of word.
h=word\[-2:\]
print "h is: "+h # The last two elements.
i=word\[:-2\]
print "i is: "+i # Everything except the last two characters
l=len(word)
print "Length of word is: "+ str(l)

请注意ASCII和UNICODE字符串的区别:

print "Input your Chinese name:" s=raw\_input("Press enter to be continued ");
print "Your name is  : " +s;
l=len(s)
print "Length of your Chinese name in asc codes is:"+str(l);
a=unicode(s,"GBK")
l=len(a)
print "I'm sorry we should use unicode char!Characters number of your Chinese \\  name in unicode is:"+str(l);

使用List

类似Java里的List,这是一种方便易用的数据类型:

word=\['a','b','c','d','e','f','g'\]
a=word\[2\]
print "a is: "+a
b=word\[1:3\]
print "b is: " print b # index1 and 2 elements of word.
c=word\[:2\]
print "c is: " print c # index0 and 1 elements of word.
d=word\[0:\]
print "d is: " print d # All elements of word.
e=word\[:2\]+word\[2:\]
print "e is: " print e # All elements of word.
f=word\[-1\]
print "f is: " print f # The last elements of word.
g=word\[-4:-2\]
print "g is: " print g # index3 and 4 elements of word.
h=word\[-2:\]
print "h is: " print h # The last two elements.
i=word\[:-2\]
print "i is: " print i # Everything except the last two characters
l=len(word)
print "Length of word is: "+ str(l)
print "Adds new element\[图片上传中...(image-b4ced-1616074265420-0)\] " word.append('h')
print word

条件和循环语句

\# Multi-way decision
x=int(raw\_input("Please enter an integer:")) if x<0:
    x=0 print"Negative changed to zero" elif x==0:
    print "Zero"  else:
    print "More" # Loops List
a= \['cat', 'window', 'defenestrate'\] for x ina:
    print x, len(x) 

如何定义函数

\# Define and invoke function.
def sum(a,b):
    return a+b
func = sum
r = func(5,6)
print r
# Defines function with default argument
def add(a,b=2):
    return a+b
r=add(1)
print r
r=add(1,5)
print r

并且,介绍一个方便好用的函数:

\# The range() function
a =range(5,10)
print a
a = range(-2,-7)
print a
a = range(-7,-2)
print a
a = range(-2,-11,-3) # The 3rd parameter stands for step
print a

文件I/O

spath="D:/download/baa.txt" f=open(spath,"w") # Opens file for writing.Creates this file doesn't exist.  f.write("First line 1.\\n")
f.writelines("First line 2.")
f.close()
f=open(spath,"r") # Opens file forreading for line in f:
    print line
f.close()

异常处理

s=raw\_input("Input your age:") if s =="":
    raise Exception("Input must no be empty.") try:
    i=int(s)
except ValueError:
    print "Could not convert data to an integer." except:
    print"Unknown exception!"  else: # It is useful for code that must be executed if the try clause does not raise an exception
    print "You are %d" % i," years old"  finally: # Clean up action
    print "Goodbye!"

类和继承

class Base:
    def \_\_init\_\_(self):
        self.data =\[\]
    def add(self, x):
        self.data.append(x)
    def addtwice(self, x):
        self.add(x)
        self.add(x)
# Child extends Base class Child(Base):
    def plus(self,a,b):
        return a+b
oChild =Child()
oChild.add("str1")
print oChild.data
print oChild.plus(2,3)

包机制

每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:

\# a.py
def add\_func(a,b):
    return a+b

\# b.py
from a import add\_func # Also can be : import a
print "Import add\_func from module a" 
print"Result of 1 plus 2 is: " print add\_func(1,2)    # If using "import a" , then here should be "a.add\_func"

module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:

parent 
  --\_\_init\_.py
  --child
    -- \_\_init\_.py
    --a.py
b.py

那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:

import sys
print sys.path

通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:

import sys
sys.path.append('D:\\\\download')
from parent.child.a import add\_func
print sys.path
print "Import add\_func from module a" print"Result of 1 plus 2 is: " print add\_func(1,2)

总结

你会发现这个教程相当的简单.许多Python特性在代码中以隐含方式提出,这些特性包括:Python不需要显式声明数据类型,关键字说明,字符串函数的解释等等.我认为一个熟练的程序员应该对这些概念相当了解,这样在你挤出宝贵的一小时阅读这篇短短的教程之后,你能够通过已有知识的迁移类比尽快熟悉Python,然后尽快能用它开始编程。


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python爬虫入门教程:从零开始抓取网页数据(超详细版) 嘿!欢迎来到这篇超详细Python爬虫教程!如果你对爬虫一无所知,别担心!我会用最简单的方式带你从零开始,一步步掌握爬虫的核心技能。 阅读详情

相关推荐

Python入门教程超详细

三万字Python入门教程,建议收藏

wangyuxiang946的博客 1万+

python入门教程(非常详细)-Python入门教程超详细1小时学会Python

1.Hello world安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行。我们写下一句著名的程序语句:并按回车,你就能看到这句被K&R引入到程序世界的名言。在解释器中选择"File"--"New Window" 或快捷键 Ctrl+N , 打开一个新的编辑器。写下如下语句:保存为a.py...

q6q6q的专栏 4349

python入门教程超详细1小时学会Python

简介(联系小编 即可自动获取大量python视频教程以及各类PDF!) 1.Hello world 安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行。 我们写下一句著名的程序语句: 并按回车,你就能看到这句被K&R引入到程序世界的名言。 在解释器中选择"File"–“New Window” 或快捷键 Ctrl+N , 打开一个新的编辑器。 写下如下语句: 保存为a.py文件。 按F5,你就可以看到程序的运行结果了。

zihong523的博客 528

2019千峰Python超详细入门教程(百度云盘分享).docx

2019千峰Python超详细入门教程(百度云盘分享).docx 去发现同类优质开源项目:https://gitcode.com/ 本教程是一份专为Python初学者准备的入门资源,内容涵盖了Python编程的基础知识和进阶技巧。教程共分为17个章节,涵盖了从基础语法、数据类型、控制流程,到面向对象、异常处理、网络编程等多个方面。 每个章节都包含了详细的教学视频和代码示例,帮助您更好地理解和掌握P...

gitblog_06773的博客 328

零基础学python超详细入门教程python入门教程(非常详细)

零基础学python超详细入门教程python入门教程(非常详细)

tingting11232的博客 1万+

Python入门教程超详细1小时学会Python

Python入门教程超详细1小时学会Python 【下载地址】Python入门教程超详细1小时学会Python 这是一个专为初学者设计的Python入门教程,帮助您在短短1小时内快速掌握Python编程基础。教程内容涵盖Python简介与安装、基本语法、常用数据类型、控制结构、函数定义以及常用库介绍等多个方面。通过精心...

gitblog_06734的博客 313

Python入门教程 超详细1小时学会Python

为什么使用Python? 假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. (更多课程搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。一起加油吧!陌生人) 思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到...

Bzwanghao的博客 328

[链接]两篇Python入门教程

Python入门教程 超详细1小时学会Python Python完全新手教程

weixin_33834628的博客 281

Python超详细基础入门教程

python基础入门,一看就会!

Bluebro的博客 1457

python超详细入门教程_Python入门教程 超详细1小时学会Python

本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的Python程序.为什么使用Python假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200.思路:用shell编程.(Linux通常是bash而Windows是批处理脚本)...

weixin_39755873的博客 319

python入门教程(非常详细)-Python超详细入门教程(上)

课程简介2019千锋全新打造Python教程,深入浅出的讲解Python语言的基础语法,注重基本编程能力训练,深入解析面向对象思想,数据类型和变量、运算符、流程控制、函数、面向对象、模块和包、生成器和迭代器。章节目录:第1章 第一个Python程序与数据存储及数据类型87 垃圾回收机制&类装饰器&魔术方法&人射击子弹案例21 python概述和工具的安装88 垃圾回收机制&类装饰器&魔术方法&人射...

q6q6q的专栏 1484

openCV超详细入门教程python版)

涉及内容: 背景提取 颜色过滤 边缘检测 用于对象识别的特征匹配 一般对象识别 你将需要两个主要的库,第三个可选:python-OpenCV,Numpy 和 Matplotlib。 一、加载图片 首先,我们正在导入一些东西,我已经安装了这三个模块。接下来,我们将img定义为cv2.read(image file, parms)。默认值是IMREAD_COLOR,这是没有任何 alpha 通道的...

chi's blog 4万+

Python入门教程超详细1小时学会Python:快速掌握Python编程基础

Python入门教程超详细1小时学会Python:快速掌握Python编程基础 【下载地址】Python入门教程超详细1小时学会Python 这是一个专为初学者设计的Python入门教程,帮助您在短短1小时内快速掌握Python编程基础。教程内容涵盖Python简介与安装、基本语法、常用数据类型、控制结构、函数定义以及常...

gitblog_06793的博客 361

Python2入门教程 超详细1小时学会Python

原文地址转:Python2入门教程 超详细1小时学会Python  本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的Python程序. 为什么使用Python 假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200.

haah1221的专栏 2805

Python入门教程 超详细1小时学会Python,学不会任你伺候

思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是"Reply from ... " 而不通的时候文本是"time out ... " ,所以,在结果中进行字符串查找,即可知道该机器是否连通. 实现:Java代码如下: 这段代码运行得很...

java276582434的博客 2万+

Python笔记——零基础学python:超详细入门教程!python入门教程

Python由吉多·范罗苏姆(Guido van Rossum)于1991年开发而成,至今已经成为世界上最受欢迎的编程语言之一。它的设计哲学强调代码的可读性,特别是其简洁的语法,使得Python非常适合初学者。为什么Python如此受欢迎?以下是一些原因:??简洁易学:Python的语法简单直观,非常适合初学者。强大的社区支持:Python有着庞大的开发者社区,丰富的第三方库和框架。跨平台:Python支持多种操作系统,如Windows、MacOS、Linux等。

G2583690的博客 458

Python 写你的第一个爬虫:小白也能轻松搞定数据抓取(超详细包含最新所有Python爬虫库的教程)

本文是一篇面向爬虫爱好者的超详细 Python 爬虫入门教程,涵盖了从基础到进阶的所有关键技术点:使用 Requests 与 BeautifulSoup 实现静态网页数据抓取,运用 lxml、XPath、CSS 选择器等高效解析技术,深入 Scrapy 框架搭建分布式爬虫项目,掌握 Selenium 和 Playwright 浏览器自动化处理 JS 动态渲染,探索 aiohttp、HTTPX 异步爬虫提升并发性能,并结合代理 IP 池、User-Agent 伪装、验证码识别等反爬虫策略应对电商数据抓取、新闻

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:CSDNWF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 1万+
上一篇: Python新手必看!常用知识点梳理总结。
下一篇: 详解Python可视化神器Plotly,用简单代码,绘制出更好的图表。
一秋的编程笔记
博客等级 码龄3年 1574粉丝 319原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值