Python 基础:分分钟入门
Python和Pythonic
Python是一门计算机语言(这不是废话么),简单易学,上手容易,深入有一定困难。为了逼格,还是给你们堆一些名词吧:动态语言、解释型、网络爬虫、数据处理、机器学习、Web开发、等等等等。Python目前分为2.x和3.x两个版本,与其它语言不一样的是,它的这两个版本是不兼容的,虽然会其中一个就容易上手另一个,但是鉴于公司目前几乎全是用Python2.7,建议同事们也可以从2.x版本开始,如果没有历史遗留问题,建议初学者直接上手Python3。
Pythonic指的是按照Python推荐的规范,干净美观、可读性强的逼格满满到代码风格,比如多使用Python内置的数据结构,不要重复造轮子。简单来讲,你可以在Python解释环境里输入import this了解一下Python之禅。Python的代码风格上,如果团队有自己的风格则按照自己的风格,否则,比较推荐的是PEP8或Google Code Style。关于PEP8规范,链接在这里(https://www.python.org/dev/peps/pep-0008/)。
开发环境搭建
在常见的*inx系统上,默认都安装了Python解释器,你可以直接在终端输入python进入默认的环境。在Windows系统上,你需要去Python官网下载Python的安装包,安装之后可以在“所有程序”中找到“IDLE”,也可以在cmd中通过输入python进入解释器环境。
对于Python常用的IDE(集成开发环境),推荐使用PyCharm,如果土豪请购买正版,如果不是土豪又有情怀,请使用社区版(免费),如果既不土豪又没有情怀,就用盗版吧(不推荐)。
Python之所以非常流行,离不开它千千万万的第三方库,你可以将第三方库理解为我写了一个牛X的功能,发布出来之后你可以直接使用。安装第三方库的话,推荐使用pip,在Ubuntu上,你可以通过apt-get install python-pip安装。
hello, world.
常见情况下,Python代码可以通过两种形式运行:一是直接在刚才所讲的解释环境下(输入python命令后进入的地方)一行一行的执行,或者也可以保存到一个.py的文件中,在终端输入python 文件名来执行。比如新建一个test.py,文件内容为print 'hello, world.',在终端输入python test.py,即可输出hello, world.。
注意⚠️:Python中没有使用花括号{}来表示代码间的层级关系而是使用缩进,这样的好处是在语法层面上限制了不好的代码风格,但是初学者容易混淆。
变量、基础数据类型
变量
Python中变量不需要声明,你可以通过直接赋值的方式使用变量:
a = 1
b = True
c = 1.0
a = 3+2j
在Python中,你可以在给一个变量赋值为一种类型之后重新为其赋值为新的类型(如上面代码第1、4行)。
基础数据类型
Python中的数字有:整型、长整型、浮点型、布尔型、复数。
整形:int,常见的整数(正数/负数/0),通过sys.maxint即可查看当前平台上最大的整型的值。
长整型:long,比整型最大的值还大或者比整型最小的值还小的整数。注意:Python中长整型没有大小限制,你的内存有多大,它就能表示多大。
浮点型:float,即小数。
布尔型:bool,常见形式为True, False,表示逻辑真和逻辑假,其实背后的实现是数字1和0.
复数:complex,Python是为数不多语法层面上支持复数的语言,表现为形如1+2j的形式。可以直接支持两个复数的运算。
Python中的所有数据类型都是对象。你可以通过type()函数查看一个变量的类型。
Python中字符串有4种表现形式:单引号、双引号、三引号:
string1 = 'this is a str'
string2 = "this is a str"
string3 = '''this is a str
这里还是string3的范围'''
string4 = """this is a str"""
其中,第3/4种字符串表现形式都是三引号引起来的。如果在字符串的引号之前加上一个u,则表示这是一个unicode字符串,如果加上r,则表示这是一个原始字符串 ,这两种类型,对于初学者暂不讨论。值得注意的是,Python中没有C-Like语言中的字符类型。
运算符、控制语句
运算符
Python中没有类似于C/C++/Java的自增自减运算符,因为在Python中,数字是一种不可变类型(immutable),对数字的操作都会产生新的对象而不是修改原来的对象。但是i = i + 1一样可以写为i += 1。
注意:Python2.5以后的除法为地板除,即5/2=2而不是5/2 = 2.5。
Python常见的逻辑运算符为:
!=, <>:不等于,表示两边的值不相等,推荐使用前一种。1 != 2。
==:等于,表示两边的值相等。2 == 2。
and:逻辑与,如果两边的值都为True则整个值为True,反之为False。1==1 and 2==2。
or:逻辑或,如果两边有一个值True则整个值为True,反之为False。1==2 or 2==2。
not:逻辑非,如果值为True,则结果为False。not 2==1。
控制语句
条件语句:
Python中的条件语句只有if-elif-else,没有switch-case,但是有经验的开发者通常使用map这一结构来达到比switch-case更加优雅,更加Pythonic的实现,这个后续再说。
if条件1:
语句块1
elif条件2:
语句块2
else:
语句块3
elif类似于其它语言中的else if。
循环语句:
Python中有两种方式表达循环语句:
while 循环:
while条件:
语句块
for循环:
for变量in集合:
语句块
值得注意的是Python中没有C-Like语言里的for(int i=0; i<10; i++)的语法,不过可以使用xrange或者range函数实现同样的效果。前一个函数返回一个生成器,后一个函数返回list,一般推荐使用前一个,至于这两个函数的异同,后面有时间细聊。
集合
Python中常见的集合类型有:list,tuple,set,dict。
list
list表达的是一列数据的集合,列表中的元素可以增加、删除、查找等操作:
In[1]: l = ['this','is','a','list']# 初始化一个list
In[2]: type(l)
Out[2]: list
In[3]: l.index('is')#查找元素
Out[3]: 1
In[4]: l.append('new item')#新增元素
In[5]: l
Out[5]: ['this','is','a','list','new item']
In[6]: l.reverse()#反转列表
In[7]: l
Out[7]: ['new item','list','a','is','this']
In[8]: l.remove('is')# 删除元素
In[9]: l
Out[9]: ['new item','list','a','this']
tuple
tuple类似于list,同样表示一组数据的集合,不同的是,tuple是写保护的,即:tuple不可以对其元素做任何修改操作(新增、删除等):
In[1]: t = (1,2,3)# 初始化
In[2]: t
Out[2]: (1,2,3)
In[3]: type(t)
Out[3]: tuple
set
set表示一个不重复元素的集合,值得注意的是:set是无序的。
In[1]: s = {'this','is','a','a','set'}# 初始化
In[2]: s
Out[2]: {'a','is','set','this'}
In[3]: type(s)
Out[3]: set
In[4]: s.add('new item')# 新增元素
In[5]: s
Out[5]: {'a','is','new item','set','this'}
In[6]: s.remove('a')#删除元素
In[7]: s
Out[7]: {'is','new item','set','this'}
dict
dict表示一组数据的对应关系,与set一样,dict是无序的(你可以通过collections中的OrderDict来达到有序)。同时,对于初学者,dict与set的声明方式容易混淆:
In[1]: d = {'a': 'A','b': 'B'}# 初始化
In[2]: d
Out[2]: {'a': 'A','b': 'B'}
In[3]: d['a']
Out[3]: 'A'
In[4]: d['c'] = 'C'# 新增元素
In[5]: d
Out[5]: {'a': 'A','b': 'B','c': 'C'}
In[6]: deld['a']#删除元素
In[7]: d
Out[7]: {'b': 'B','c': 'C'}
函数(初步)
在Python中声明函数的方式如下:
def add(num1,num2):
returnnum1 + num2
通其它语言一样,你可以在函数中通过return返回值。不同的是,Python中函数可以有多个返回值,比如下面的函数,返回了两个数的和以及差:
def calc(n1,n2):
returnn1 + n2,n1 *n2
add,sub = calc(5,1)
print add,sub# 6 4
其实这里并不是真的返回了两个值,而是将返回值组装成一个tuple再返回。
小结
Python中最最最基础的部分差不多就是这些了,后面会继续分享一些Pythonic的Python代码写法。
Python 基础:分分钟入门的更多相关文章
- Python 基础:入门必备知识
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:程序员野客 先看下咱们的基础目录1 标识符2 关键字3 引号4 编码5 ...
- 第一阶段——CentOS6_Python3.6.1笔记(尚学堂-Python基础快速入门)+ 【补充】麦子-Python程序入门与进阶
虚拟机环境: 设置网络 .修改网络地址 .设置网卡为nat模式 .确保物理机启动dhcp.net服务 .编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-et ...
- python基础之入门基础
编程语言分类 机器语言 使用二进制代码直接编程,直接与硬件交互,执行速度非常快,灵活,但是开发难度高,开发效率低下,缺乏移植性. 汇编语言 对机器语言指令进行了英文封装,较机器语言容易记忆,直接与硬件 ...
- Python基础——函数入门
等待更新…………………… 后面再写
- 零基础如何入门Python
编程零基础如何学习Python 如果你是零基础,注意是零基础,想入门编程的话,我推荐你学Python.虽然国内基本上是以C语言作为入门教学,但在麻省理工等国外大学都是以Python作为编程入门教学的. ...
- Python基础入门教程
Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...
- Python基础入门教程,Python学习路线图
给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...
- Python怎么样入门?Python基础入门教程
给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环
条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件
前面的教程中,我们已经可以让小海龟绘制出各种图形了.但是,所有绘图的代码都是预先编好的,程序一旦运行起来,运行结果(绘制的图形)就是固定不变的.这一节中,咪博士将教大家如何让海龟响应用户的输入. im ...
随机推荐
- Linux的nmon监控结果分析文件中网络分析NET
1.首先,使用# ifconfig查看Linux系统中的网卡名称,有的是eth0,有的是em1,以查看结果为准,下图为em1 2.先试试Linux系统中有没有安装ethtool工具,没有的话,下载et ...
- resize2fs
VPS是15G的..但是dh和fdisk显示不一样..求解 df:Filesystem Size Used Avail Use% Mounted onudev 236M 0 236M 0% /devt ...
- cmake find_package 中,include_directories,target_link_libraries 的值怎么知道?
拿Sophus库为例: find_package(Sophus REQUIRED) include_directories(${Sophus_INCLUDE_DIRS}) target_link_li ...
- jstat查看JVM GC情况
转自 https://www.cnblogs.com/yjd_hycf_space/p/7755633.html
- SQLLDR导入乱码问题的解决
SQLLDR导入乱码问题的解决 处理过程: 1.本地建立控制文件 load data infile 'd:\TMP_KAITOUSHUJU.csv' into table TMP_KAITOU ...
- HDU 5734 Acperience(数学推导)
Problem Description Deep neural networks (DNN) have shown significant improvements in several applic ...
- react组件回顶部
在挂载更新里面判断滚动条的距离(滚动条不能overflow: auto 踩坑) componentDidMount(){ window.addEventListener('scroll' , ()=& ...
- Java17-java语法基础——泛型
Java18-java语法基础——泛型 一.泛型概念和作用 1.泛型概念: 泛型是JavaSE1.5的新特性,泛型的本质是参数化类型,也就是说,所操作的数据类型被指定为一个参数.这种参数类型可以用在类 ...
- Java高级
1.GC是什么?为什么要有GC? GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供 ...
- Log4Net web.config配置
1 .[assembly: log4net.Config.XmlConfigurator(ConfigFile = "web.config", Watch = true)] 写 ...