python入门基础知识

第二章 Python入门

什么是计算机语言

计算机就是一台用来计算机的机器,人让计算机干什么计算机就得干什么!
需要通过计算机的语言来控制计算机(编程语言)!
计算机语言其实和人类的语言没有本质的区别,不同点就是交流的主体不同!
计算机语言发展经历了三个阶段:
    机器语言
        - 机器语言通过二进制编码来编写程序
        - 执行效率好,编写起来太麻烦

    符号语言(汇编)
        - 使用符号来代替机器码
        - 编写程序时,不需要使用二进制,而是直接编写符号
        - 编写完成后,需要将符号转换为机器码,然后再由计算机执行
            符号转换为机器码的过程称为汇编
        - 将机器码转换为符号的过程,称为反汇编  
        - 汇编语言一般只适用于某些硬件,兼容性比较差  

    高级语言
        - 高级语言的语法基本和现在英语语法类似,并且和硬件的关系没有那么紧密了
        - 也就是说我们通过高级语言开发程序可以在不同的硬件系统中执行
        - 并且高级语言学习起来也更加的容易,现在我们知道的语言基本都是高级语言
        - C、C++、C#、Java、JavaScript、Python 。。。

编译型语言和解释型语言

计算机只能识别二进制编码(机器码),所以任何的语言在交由计算机执行时必须要先转换为机器码,
    也就是像 print('hello') 必需要转换为类似 1010101 这样的机器码   

根据转换时机的不同,语言分成了两大类:
    编译型语言
        - C语言
        - 编译型语言,会在代码执行前将代码编译为机器码,然后将机器码交由计算机执行
        - a(源码) --编译--> b(编译后的机器码)
        - 特点:
            执行速度特别快
            跨平台性比较差

    解释型语言 
        - Python JS Java
        - 解释型语言,不会在执行前对代码进行编译,而是在执行的同时一边执行一边编译
        - a(源码)--解释器--> 解释执行  
        - 特点:
            执行速度比较慢
            跨平台性比较好   

Python的介绍

Python是解释型语言

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 

Life is short you need Python (人生苦短,我用Python)    

Python的用途:
    WEB应用
        Facebook 豆瓣 。。。
    爬虫程序
    科学计算
    自动化运维
    大数据(数据清洗)
    云计算
    桌面软件/游戏
    人工智能
    。。。     

Python开发环境搭建

开发环境搭建就是安装Python的解释器
Python的解释器分类:
    CPython(官方)
        用c语言编写的Python解释器
    PyPy
        用Python语言编写的Python解释器
    IronPython
        用.net编写的Python解释器
    Jython
        用Java编写的Python解释器

步骤:
    1.下载安装包 python-3.6.5.exe
        - 3.x
        - 2.x    
    2.安装(傻瓜式安装) 
    3.打开命令行窗口,输入python 出现如下内容
        Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
        Type "help", "copyright", "credits" or "license" for more information.
        >>>    

Python的交互界面

当我们通过命令行来输入Python,所进入到的界面就是Python的交互界面
结构:
    版本和版权声明:
    Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    命令提示符:
    >>>

    在命令提示符后可以直接输入Python的指令!输入完的指令将会被Python的解释器立即执行!

    安装Python的同时,会自动安装一个Python的开发工具IDLE,通过IDLE也可以进入到交互模式(zai laishi de python limian)
    但是不同的是,在IDLE中可以通过TAB键来查看语句的提示。
    IDLE实际上就是一个交互界面,但是他可以有一些简单的提示,并且可以将代码保存

交互模式只能你输入一行代码,它就是执行一行,所以他并不适用于我们日常的开发! 
    仅可以用来做一些日常的简单的测试!   

我们一般会将Python代码编写到一个py文件中,然后通过python指令来执行文件中的代码

练习:
    自己尝试创建一个py文件,并向文件中写入python打印语句(print...) 
        然后执行该文件。
    如果你的系统的扩展名无法修改,请尝试自行baidu!

Python和Sublime的整合

1.在Sublime中执行Python代码,ctrl + b 自动在Sublime内置的控制台中执行  
    这种执行方式,在某些版本的Sublime中对中文支持不好,并且不能使用input()函数

2.使用SublimeREPL来运行python代码    
    安装完成,设置快捷键,希望按f5则自动执行当前的Python代码
    { "keys": ["f5"], "caption": "SublimeREPL:Python","command": "run_existing_window_command", "args":{"id": "repl_python_run","file": "config/Python/Main.sublime-menu"}},

几个概念

1.表达式

    表达式就是一个类似于数学公式的东西
    比如:10 + 5   8 - 4
    表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响
    如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

2.语句

    在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。。。
    比如:
        print()
        input()
        a = 10
    语句的执行一般会对程序产生一定的影响
    在交互模式中不一定会输出语句的执行结果  

3.程序(program)

    程序就是由一条一条的语句和一条一条的表达式构成的。

4.函数(function)

    函数就是一种语句,函数专门用来完成特定的功能
    函数长的形如:xxx()          
    函数的分类:
        内置函数
            - 由Python解释器提供的函数,可以在Python中直接使用
        自定义函数   
            - 由程序员自主的创建的函数
    当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数 
    开始菜单里里面的Manuals是离线版本的库,或者直接去官网python.org来找documentation来找库
    *函数的两个要素:*
        参数
            - ()中的内容就是函数的参数
            - *函数中可以没有参数,也可以有多个参数,多个参数之间使用 , 隔开*
        返回值        
            - 返回值是函数的返回结果,不是所有的函数都有返回值
            - 

5. 标识符

在Python中所有可以自主命名的内容都属于标识符
比如:变量名、函数名、类名
标识符必须遵循标识符的规范
1.标识符中可以含有字母、数字、_,但是不能使用数字开头
例子:a_1 _a1 _1a
2.标识符不能是Python中的关键字和保留字
也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖
3.命名规范:
在Python中注意遵循两种命名规范:
下划线命名法(一般用这种命名法)
所有字母小写,单词之间使用_分割
max_length min_length hello_world xxx_yyy_zzz
帕斯卡命名法(大驼峰命名法)类名的时候会考虑用这种命名法。
首字母大写,每个单词开头字母大写,其余字母小写
MaxLength MinLength HelloWorld XxxYyyZzz

如果使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax

6.数值

c=0b10 二进制的10
c=0o10 八进制的10
c=0x10 十六进制的10

7.格式化字符串

①字符串之间也可以进行加法运算,如果将两个字符串进行相加,则会自动将两个字符串拼接为一个,字符串只能和字符串计算
a = ‘abc’ + ‘haha’ + ‘哈哈’
②for i in range(10):
a = i
print(‘wosji{}’.format(a))
上面就是打印的方法
③占位符
name=‘XXX’
print(‘欢迎 %s 光临!’%name)

格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串
在格式化字符串中可以直接嵌入变量
c = f’hello {a} {b}’#这里只是对a、b进行格式化字符串处理,下面输出的内容可以仅是a和b,当然也可以是c

基本语法

1.在Python中严格区分大小写
2.Python中的每一行就是一条语句,每条语句以换行结束
3.Python中每一行语句不要过长(规范中建议每行不要超过80个字符)
    "rulers":[80],
4.*一条语句可以分多行编写,多行编写时语句后边以\结尾*  
5.*Python是缩进严格的语言,所以在Python中不要随便写缩进*  
6.*在Python中使用#来表示注释,#后的内容都属于注释,注释的内容将会被解释器所忽略*
    我们可以通过注释来对程序进行解释说明,一定要养成良好的编写注释的习惯
    注释要求简单明了,一般习惯上#后边会跟着一个空格

字面量和变量

字面量就是一个一个的值,比如:1,2,3,4,5,6,‘HELLO’
    字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量

变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的
    变量本身没有任何意思,它会根据不同的字面量表示不同的意思

*一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量*

数据类型

数据类型指的就是变量的值得类型,也就是可以为变量赋哪些值

数值

整型

布尔值
布尔值一共有两个 True 和 False
布尔值实际上也属于整型,True就相当于1,False就相当于0,None专门用来表示不存在,空值

浮点型

复数

字符串
字符串必须使用引号引起来,不使用不是字符串;引号可以是双引号,也可以是单引号,但是注意不要混着用;相同的引号之间不能嵌套;单引号和双引号不能跨行使用,可以用行连接\加在行的末尾。

空值

类型检查

type()

对象(object)

- Python是一门面向对象的语言
- 一切皆对象!
- 程序运行当中,所有的数据都是存储到内存当中然后再运行的!
- **对象**就是内存中专门用来存储指定数据的一块区域
- 对象实际上就是一个容器,专门用来存储数据
- 像我们之前学习的数值、字符串、布尔值、None都是对象
- 参考 图1
-

这是一张图片

对象的结构

- *每个对象中都要保存三种数据*
    - id(标识)
        > id用来标识对象的唯一性,每一个对象都有唯一的id
        > 对象的id就相当于人的身份证号一样
        > 可以通过id()函数来查看对象的id
        > id是由解析器生成的,在CPython中,id就是对象的内存地址
        > 对象一旦创建,则它的id永远不能再改变

    - type(类型)
        > 类型用来标识当前对象所属的类型
        > 比如:int str float bool 。。。
        > 类型决定了对象有哪些功能
        > *通过type()函数来查看对象的类型*
        > *Python是一门强类型的语言,对象一旦创建类型便不能修改*所以转化数据类型实际上是新建了一个对象。


    - value(值)
        > 值就是对象中存储的具体的数据
        > 对于有些对象值是可以改变的
        > 对象分成两大类,可变对象 不可变对象
            可变对象的值可以改变
            不可变对象的值不能改变,之前学习的对象都是不可变对象
    - 参考 图2

在这里插入图片描述

练习:尝试自己画一下对象的内存结构。  

变量和对象

- 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
- *变量中存储的不是对象的值,而是对象的id(内存地址)*,
    当我们使用变量时,实际上就是在通过对象id在查找对象
- 变量中保存的对象,只有在为变量重新赋值时才会改变
- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量

- 参考 图3

在这里插入图片描述

类型转换

 所谓的类型转换,将一个类型的对象转换为其他对象
 *类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象*
 类型转换四个函数 int() float() str() bool()

运算符(操作符)

1.算数运算符

加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
减法运算符
乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
除法运算符:/运算时结果总会返回一个浮点类型
整除://只会保留计算后的整数位,总会返回一个整型
幂运算:**求一个值的几次幂
取模:%求两个数相除的余数

2.赋值运算符

可以将等号右侧的值赋值给等号左侧的变量
+= : a += 5 相当于 a = a + 5
-=: a -= 5 相当于 a = a - 5
*= : a *= 5 相当于 a = a * 5
**=: a **= 5 相当于 a = a ** 5
/= : a /= 5 相当于 a = a / 5
//=: a //= 5 相当于 a = a // 5
%=: a %= 5 相当于 a = a % 5

3.关系运算符

关系运算符用来比较两个值之间的关系,总会返回一个布尔值
如果关系成立,返回True,否则返回False

> 比较左侧值是否大于右侧值
= 比较左侧的值是否大于或等于右侧的值
< 比较左侧值是否小于右侧值
<= 比较左侧的值是否小于或等于右侧的值
== 比较两个对象的值是否相等
!= 比较两个对象的值是否不相等
相等和不等比较的是对象的值,而不是id
is 比较两个对象是否是同一个对象,比较的是对象的id
is not 比较两个对象是否不是同一个对象,比较的是对象的id

在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
当对字符串进行比较时,实际上比较的是字符串的Unicode编码
比较两个字符串的Unicode编码时,是逐位比较的
利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较

4.逻辑运算符

逻辑运算符主要用来做一些逻辑判断

not 逻辑非
not可以对符号右侧的值进行非运算
对于布尔值,非运算会对其进行取反操作,True变False,False变True
对于非布尔值,非运算会先将其转换为布尔值,然后再取反

and 逻辑与
and可以对符号两侧的值进行与运算
只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
与运算是找False的
Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值

or 逻辑或
or 可以对符号两侧的值进行或运算
或运算两个值中只要有一个True,就会返回True
或运算是找True的
Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值

5.条件运算符(三元运算符)

语法: 语句1 if 条件表达式 else 语句2
执行流程:
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果

6.运算符优先级表格

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值