欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第一章 Python基础

程序员文章站 2022-04-24 16:26:25
...

1. 变量

1.1 什么是变量

变量,是用于在内存中存放程序数据的容器。

计算机的最核心功能就是“计算”, 计算需要数据源,数据源要存在内存里,比如我要把小明的姓名、身高、年龄信息存下来,后面程序会调用,怎么存呢,直接设置一个“变量名=值”, 就可以

1.2 变量的使用规则

程序是从上到下执行的,所以变量必须先定义,后调用, 否则会报错

1.3 变量的命名规则

  1. 变量名只能是 字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 关键字不能声明为变量名

1.4 常用定义方式

1.驼峰体
2.下划线

2.基本数据类型

2.1什么是数据类型

人类可以很容易的分清数字与字符的区别,但是计算机并不能呀。,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。

2.2 数字

int(整型)

在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807

long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

(自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。)

float (浮点型)

即小数

2.3 字符串

在Python中,加了引号的字符都被认为是字符串!

2.3.1 单引号、双引号有什么区别?

让我大声告诉你,单双引号木有毛线区别。只有下面这种情况 你需要考虑单双的配合

msg = "My name is Tony , I'm 19 years old!"

2.3.2 多引号什么作用呢?

作用就是多行字符串必须用多引号

msg = '''
今天我想写首小诗,
歌颂我的同桌,
你看他那乌黑的短发,
好像一只炸毛鸡。
'''
print(msg)

2.3.3 字符串拼接

数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what fuck?是的,但只能进行”相加”和”相乘”运算。

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

2.4 布尔型(bool)

布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断

2.5 列表(List)

如果要把全班的人名在内存里存下来,用上面的字符串类型可以做到,但取的时候不方便。此时,用列表就比较合适。

>>>  names = ["Alex","Jack","Rain","Rachel","Mack"]
>>> names[2]
>'Rain'

2.5.1 添加

元素的添加有2种方式,插入、追加

插入

>>>> names['Alex', 'Jack', 'Rain', 'Rachel', 'Mack']
>>>> names.insert(3,"小明")  #3代表你想插入的位置
>>>> names['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack']

追加(添加到列表的尾部)

>>> names['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack']
>>> names.append("小强")
>>> names['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack', '小强']

2.5.2 修改

直接根据下标找到元素重新赋值即可

2.5.3 删除元素

这个不是通过下标了,是根据元素名字。

>>> names
['Alex', 'Jack', 'Rain', '小明', 'Rachel', 'Mack', '小强']
>>> names.remove("小明")
>>> names
['Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '小强']

上面的命令会删除从左开始找到的第一个小明, 如果有多个小明,则只删除找到的第一个。

2.5.4 判断元素是否在列表里

>>> names
['Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '小强']
>>> "Mack" in names
True

2.6 字典(dict)

字典是Python语言中唯一的映射类型
定义:{ key1:value 1,key 2:value 2 }

特性:
1.key-value 结构
2.key必须可hash、且必须为不可变数据类型,必须唯一
3.可存放任意多个值、可修改、可以不唯一
4.无序

2.6.1 字典的创建

person = {"name":"alex",'age':20}
#或者
person = dict(name = 'alex',age = 20)

2.6.2 字典的常见操作

增上改查

2.7 集合(set)

由一个或者多个确定的元素所构成的整体叫做集合

特性:
1.确定性(元素必须可以hash)
2.互异性(去重)
3.无序性(集合中的元素没有先后之分)
例如集合{3,4,5}和{3,5,4}算作同一个集合。

注意:集合存在的意义就算为了去重和关系运算

3.基本运算符

计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。

4.流程控制

4.1 if…else

4.2 while

5.练习题&面试题

5.1 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型?

编译型语言:
x(源码) --> 编译 --> y(编译后的机器码)
特点:执行速度快,将整个代码全部编译后再执行,但是跨平台比较差。
解释型语言:
x(源码) --> 解释器(虚拟机) --> 解释执行
特点:执行速度比较慢,因为逐行解释再执行,但是跨平台性好。

编译类:C、C++、vb、Delphi

解释类:Perl、Ruby、Python

5.2 声明变量注意事项有那些?

1、变量名只能是 字母、数字和下划线的任意组合
2、变量名的第一个字符不能使数字
3、[and,print,as,not,or]等关键字不能作为变量名
4、变量名不能为中文、拼音;变量名单词不能过长:变量单词不达意

5.3 如何查看变量在内存中的地址?

age = 23
print(id(age))

5.4 or 和 and

v1=1 or 3
v2=1 and 3
v3=0 and 2 and 1
v4=0 and 2 or 1
v5=0 and 2 or 1 or 4
v6=0 or False and 1

结果: v1 = 1 v2 = 3 v3 = 0 v4 = 1 v5 = 1 v6 = False

基本运算规律
1.在不加括号时候, and优先级大于or
2.x or y 的值只可能是x或y. x为真就是x, x为假就是y
3.x and y 的值只可能是x或y. x为真就是y, x为假就是x

5.5 为什么学Python

优点

1、python语法非常优雅,简单易学
2、免费开源
3、跨平台,可以*移植
4、可扩展,可嵌入性强
5、第三方库丰富

应用领域

1、在系统编程中应用广泛,比如说shell工具。
2、在网络爬虫方面功能非常强大,常用的库如scrapy,request等
3、在web开发中使用也很广泛,如很多大型网站都用python开发的,如ins,youtube等,常用的框架如django,flask等
4、python在系统运维中应用广泛,尤其在linux运维方面,基本上都是自动化运维。
5、在人工智能,云计算,金融等方面也应用非常广泛。

5.6 公司线上和开发环境用的什么系统

线上用的centos和Ubuntu
系统开发环境用的windows,mac,还有Ubuntu。

5.7 python和java、php、c、c#、c++ 等其他语言对比?

Java C# PHP Python (开发效率高),这些语言本身不需要你去管理内存了。它们都有自己的虚拟机,对于开辟内存、释放内存都由这个虚拟机处理。

C 和 Python、Java、C#等C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行Python 和 C Python这门语言是由C开发而来

对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.

对于速度:Python的运行速度相较与C,绝逼是慢了Python 和 Java、C#等

对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持对于速度:Python在速度上可能稍显逊色所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主

5.8 简述解释型和编译型编程语言

解释型语言编写的程序不需要编译,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是执行的时候才翻译。这样解释型语言每执行一次就要翻译一次,效率比较低。

用编译型语言写的程序执行之前,需要一个专门的编译过程,通过编译系统,把源高级程序编译成为机器语言文件,翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。

5.9 请列出至少5个PEP8规范

每个缩进级别使用4个空格

每行代码的最大长度限制为79个字符

若是导入多个库函数,应该分开依次导入道路应按照以下顺序导入
a、标准库导入 b、相关的第三方库导入 c、本地应用程序的库导入

在表达式中避免无关的空格代码更改时,相应的注释也要随之更改

命名要规范,通俗易懂

5.10 ascii、Unicode、utf-8、gbk的区别

ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符

Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2^16=65556个,称为万国语言,特点:速度快,但浪费空间

utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的

gbk 是中文的字符编码,用2个字节代表一个字符

5.12 字节码和机器码的区别

机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写,一般从业人员接触不到。

字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

5.13 Python2和Python3的区别

1.python2没有nonlocal关键字,要修改临时变量只能将其改成可变数据类型,如数组。b=[a]
2.print()函数代替print语句
3.Python3加入 Unicode 字符串,用以编码存储字符串。比如用 utf-8可以用来输入中文
4.Python3去掉long类型,新增了bytes。
5.Python 3整数之间做除法可以得到浮点数的结果,不需要进行数据格式转换1/2=0.5 Python 2整数int间除法结果为把运算结果去尾的整数1/2=0,3/2.0=1.5
6.Python3 中 range(),Python2 中 xrange()。
7.python2中的不等于号可以是!=或者<>,python3只能是!=
8.python2中raw_input()用来输入字符串,而python3中使用input()来输入字符串

5.14 列举字符串、列表、元组、字典每个常用的5个方法

第一章 Python基础
第一章 Python基础

相关标签: python 编程语言