文章检索
文章检索
文章检索
轮极熙域  -  追求简约

一个属于自己的网络空间,分享学习、技术、新闻、热点、生活等乱七八糟的东西,也是一个默默奋斗的“收藏夹”。

从C到python过渡学习 | python
时间:2019-12-20 作者:半凡烟竹 标签:python

众所周知,python比C容易得多,但第一语言为C的学习者,很难在第一时间完成C到python的转换,本文旨在用最少的时间和精力让你做到python的入门,因此python和C相同的部分不再赘述。

1.编译语言与解释语言

C是编译语言,python是解释语言。

C语言先通过编译器将代码转换成可执行的二进制文件,当使用时,CPU可直接运行,但不同的操作系统平台的可执行文件不同,因此C语言等编译语言的跨平台性很差。

python语言是解释型语言,代码的运行需要依赖解释器,python解释器先运行,解释器再将python程序逐行翻译成可执行语言交由CPU运行,这个过程中并不生成可执行文件。

这个重点介绍一下,最近有很多人问我python的很多相关问题,我认为与这个有很大的相关。

我们写代码,无论是C、C++、Java、python,都需要一个写代码的软件,这个软件叫编辑器,在windows里系统自带的编辑器叫“记事本”,在Ubuntu里系统自带的编辑器是“gedit”,而有的编辑器自己集成了编译系统(编译语言)或解释系统(解释语言),例如C/C++的dev和多语言的Visual Studio,但不是所有的文件都需要编译器或解释器,因为他们本身不算做是一种编程语言,顶多算做一个规范。我们写代码肯定不能写一句解释(编译、执行)一句,肯定需要先写好代码,再去编译(解释)执行。

下面讲讲python的使用:

大多数人都对安装一个这个:

QQ截图20200323093709.jpg

虽然版本不同,但差不多下载链接

至于怎么用,相信很多人对于终端是不陌生的,但也仅限于此,Win+R,cmd,回车,我就进入了终端,通过代码执行相关程序,或操作。

对终端的学习,建议看终端入门,建议学习Linux的终端,mac和Linux差别不大,windows与其相差甚大,但基础的原理一样,命令不同。

相关终端命令(Linux)请见本博客相关文章,windiws请出门百度。

QQ截图20200323094601.jpg

操作目录可更改,切换到上一个目录(cd ..)切换盘(d:)。

一个程序就是一个命令,若该程序添加到了环境变量的path里,就是全局可执行,一般执行时先查询本目录,再查询用户path,再查询系统path。

程序可输入参数,执行python文件时为:

python test.py

该命令下test.py就是参数。

接下来讲讲编辑器,建议选择vs codesublime

编写代码好后,终端切换到代码目录,python 文件名.py就可以执行python程序。

至于在终端中直接输入python后,那是打开交互页面,输一条,执行一条。只用于验证代码。

而其自带的那个IDLE,非常不建议使用!

2.面向过程和面向对象

C是典型的面向过程语言,代码的编程思想是我要干什么?我怎样干?

python是面向对象语言,代码的编程思想是谁来干什么?

由此可以略微窥探到这种思想的不同,对于面向对象语言来说,关注的不是某件事情怎样干,而是直指这件事情的结果(我只需要找人来干就行了)。

3.python的基础语法

(1)标识符:

以下划线(_)开头的代表不能直接访问的类属性(这不是你能染指的)

以双下划线(__)开头的代表类的私有成员(这是人家的)

以双下划线开头和结尾的代表特殊方法,__init__()代表类的构造函数

(2)保留字

and

exec

not

assert

finally

or

break

for

pass

class

from

print

continue

global

raise

def

if

return

del

import

try

elif

in

while

else

is

with

except

lambda

yield

(3)行和缩进

这个就是python的独特性所在,python的代码块不是由 {} 来控制,而是由缩进来控制,缩进必须是严格的,理论上来说缩进的字符长度可任意(但每个文件内必须相同),但普遍采用四个空格/一个制表符。

python的每一行不用 ; 结尾,; 相当于 , 的作用。

(4)多行语句

因为解释器是以行为单位解释的,对于一行的字符数量太多时,可用()置于每行末尾来分为多行。

语句中含有 []、{}、()时不需要()

(5)引号

python中引号分为单引号,双引号,三引号。均可用于字符串的使用,其中三引号可由多行组成。

(6)注释

单行注释:#

多行注释:三引号

(7)输入输出

x = input("提示语")
y = "awsl"
#输出x并换行
print x
#输出x不换行
print x,
#输出x,y然后换行
print x,y

4.python的变量类型

python的变量类型是可变的,赋值时所赋的值是什么类型,变量就会是什么类型。

type()可用于查看数据类型。

常见数据类型:整数(你想多大都没问题),浮点数,字符(串)

第一大困惑:数组在哪里?不存在……

在python中,列表([])、元组(())、字典({})是数据的三大容器。

列表、元组,是数据的集合,也就是说什么数据都能装(嵌套、多维都不是事儿),而且不同数据类型可塞进同一个列表或元组。

元组的特点是赋值之后不能改变,只包含一个。

字典由词达意,通过一个数据(键值)对应另一个数据(当然也是什么都能塞的啦),键值必须是不可变的。

操作这些容器,那必须得了解他们自带的处理函数,自行百度就好。

切片是啥?

a[x:y:z]

从x到y,以z步长取值,z为正,正向,z为负,反向

5.运算符

没有++、--了,多了一个**,**是用于求幂运算的。

6.python的函数

用def定义,不用指定返回值类型,返回值可以有多个,形参的定义眼花缭乱(C的那种就可以了,省掉数据类型、赋值即定义)。

def get_value():
    a = "第一个"
    b = "第二个"
    return a,b

c, d = get_value()

6.循环

首先说明,大家常用的for循环不香了。do……while()不存在。

while正常用即可,重点讲for循环。

我们有一个列表a,遍历其中数据咋办?

a = [2, 3, 4, 5, 6, 7, 8, 9]
for i in a:
    #操作

这个i就相当与C中的a[i],不过这里i自己就++了,每一个循环都是一个新的数据。

7.分支语句

if、elif、else是多么的和谐。

不等于可以这样用<>,&&用and替代了,|用or替代了。

8.引入模块

import hanshuku
import hanshuku as myname
frome hnashuku import onepart

© 2018-2019 upwill.cn 版权所有 | ICP备案号:冀ICP备18006040号-1| 冀公网安备 13018402000194号