LOADING

正在加载

Python学习(一)——基础

壹 计算机编程语言的发展历史

1946年在费城第一代计算机——ENIAC公诸于世,标志现代计算机的诞生,是计算机发展史上的里程碑。
计算机终究是一种机器,在没有人类的驱动下是无法运行的,所以需要人类对其内部进行相关的配置,才能运行,但计算机却采用二进制进行运算和存储,而人类通常使用十进制数进行逻辑运算,这样使得人类不容易理解、编写计算机程序,由此计算机编程语言也就随着诞生了。
计算机的第一代编程语言也就是机器语言,一条机器指令规定了计算机系统的一个特定动作,使得计算机可以按照人们的意识去运行,但由于这种语言需要专业的计算机编程人员才能编写,加上对计算机系统的兼容性问题使得二代编程语言应运而生——汇编语言,这种语言相对于机器语言更容易让人理解和接受,但还是没有得到广泛的认可,其复杂性有待提高因此人们有发明了第三代编程语言高级语言也就是我们平时说的C/C++语言等编程语言。
第三代编程语言在目前为止已经是非常成熟的编程语言了,但是呢,由于人们为了缩短传统的编写-编译-链接-运行过程就就创建了脚本编程语言。目前世界上主流的脚本语言有javascript、Python等。

在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。

贰 Python编程语言的历史

2.1 简介

Python是一种面向对象(其实看使用者的思想,可以看我的另一篇文章:链接在这)的动态类型语言。

Python是脚本语言,也是弱类型语言,还是动态语言,更是面向对象语言。

2.2 历史

1989年圣诞节期间,在阿姆斯特丹Guido(也就是Python语言创始人,头发比其他编程语言创始人头发多,这应该是Guido写Python语言最自豪的地方吧!)为了打发圣诞节的无趣加上向让编程更容易让人们学习和编写,也就是人人码代码,决心开发一个新的脚本解释程序(大佬的兴趣就是不一样)。1991年推进如开源社区,并且得到编写、升级、扩展。
Python语言在开始时还没有引起非常大的轰动,后来因为因为shell的语法有点非人性化,使得运维人员开始使用,之后跌跌撞撞到了如今21世纪,人工智能热点出现,Python再一次进入人们的视野,到今天为止也就是2020年2月16日,位居所有编程语言第三名。
下图是编程语言排行
0f171f9c2bd33a8332d203efbb751789.png

2.3 python的版本变迁

Python语言目前的版本有2.x和3.x两种。
python 2:不推荐学习,18年官方2020年之后python不在免费维护2这个版本
python 3:3.5版本以上

2.4 Python安装配置

2.4.1 安装

windows安装:去官网下就行:链接
这里推荐一个老哥的博客:链接在这里
Centos8安装:dnf install python3

2.4.2 环境

在安装的时候如果选择Add Python 3.x to PATH选项就没必要了,但是如果没有选中,则需要配置!
如果不会可以看这篇文章:链接

2.4.3 编辑器

码代码嘛!所以肯定要写的啦!那拿什么东西写呢?一般我们用编辑器码代码。
下面是推荐的几个编辑器:
1、记事本(只要是有电脑就可以用)
2、Vim(挚爱,真的很好用,强力推荐,神一样编辑器)
3、PyCharm(专门用于Python开发的IDE,强调专业的,你懂的!!!)
4、VSCode(微软开发,一般Windows用户推荐使用)
5、SublimeText(轻量级的代码编辑器)

2.4.4 测试

测试:在键盘是键入Win+R -> cmd -> python
如果出现如下图片则为安装成功!
fcbb22cede4a39a1cb5c8fa6dc4af344.png

叁 第一个python程序

print("Hello!World!")

这里的print()是Python内置函数,是系统标准输出函数
作用:将括号中的字符串数据输出控制台上
可以理解为在屏幕上显示东西。

注意:Python的语法规则是通过换行符作为一个语句结束的标识

肆 Python的注释

4.1 什么是注释

注释就是对编程代码含义的让人类可以理解的解释,注释跟程序无关,不会被编译器编译,是用来给程序员的看的,以便理解代码的意思。

4.2 注释的分类

在Python语言中(其实其他编程语言也是),有两种注释的方法:单行注释和多行注释

(1)单行注释

# 单行注释

(2)多行注释:

"""
这是多行注释
"""

伍 变量

Python是弱数据类型语言!

5.1 什么是变量?

就是符号来代表这个值,可以理解为一个人的名字吧!但是这个名字是独一无二的,它只能标识一个数据,如果给其他数据了,那么原来的数据就没有名字了,也就是变量名!有些人也叫标识符!

5.2 变量的定义

变量名称 = 变量值

5.3 Python的变量类型不固定

由于Python的变量类型不固定,所以变量接受到了什么值,那么类型随之就变成了对象的类型。
可以用内置函数type()查看变量类型。

5.4 变量命名规则

(1)、变量名称的组成必须是有效符号(大小字母、数组、_下划线)
Python是大小写敏感的语言
(2)、不要使用关键字或者保留字作为变量名称
关键字:Python
保留字:目前的版本没有使用的单词,但是后面的版本可能或者准备
(3)、不要以数字开头!!!!
(4)、命名要有意义,尽量使用有意义的单词来表示变量,下面是普遍使用的命名习惯:

驼峰法: userName classRoom
下划线发: user_name class_room

5.5 Python关键字

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',
'raise', 'return', 'try', 'while', 'with', 'yield']

5.6 Python官方命名含义

前后置双下划线的变量:魔法方法,这样的方法会在类或对象的某些事件触发后执行
前置单下划线的变量:表面上私有,最好是只在内部使用,意思就是:虽然我可以被访问,但是请把我视为私有变量,不要随意访问

前置双下划线的变量:真正的私有属性或者私有方法,可以使该属性变量或方法私有,不会被派生类区继承,仅能类自己使用,可以避免派生类和父类属性方法名称的冲突

后置单下划线的变量:没有特殊的含义,只是为和python关键字区分

全是小写的变量:小写单词,单词之间用_分割,一般使用在普通变量、模块名、包名、普通方法
每个单词前面都大写的变量:类名称
全是大写的变量:全局变量名,单词之间用_分割 ,即类变量(在C++中使用static声明)

前面没有星号的变量:arg,方法传输的一个形参

前面只有一个星号的变量:*args,方法传输的未知数量的形参,多个参数组成一个元组

前面有两个星号的变量:**kwargs,多个健值对形参,组成一个字典

以上是一小部分的,官方建议命名规则,参考于这个博文:链接在此

5.7 变量的输入输出和格式化

a.输出
Python中我们使用print()函数进行输出,就是在屏幕上输出的信息,输出一个字符串类型

#例子
print("这是一个字符串")	#输出结果:这是一个字符串

还有一种输出方式,是原样输出:

import pprint
a = """
    asa
        sas
        da
    aa
"""
pprint.pprint(a)

b.输入
Python中我们使用input()函数进行输入,就是用键盘在屏幕上输入的信息,括号里是提示用户的字符串,返回一个字符串数据类型

#例子
str_1=("请输入数据:")#假设输入Hello!python!
print(str_1)	#输出结果:Hello!python!

c.格式化
在输出时我们想用print()中输出非字符串的数据,但是由于print()只能输出字符串类型,所以我们需要格式化(可以理解为数据的转化)

第一种方法是使用函数在print()外面转化

#例子
a=10
b=str(a)
print("这是一个数字:" + b)	#输出结果:这是一个数字:10
#注意:+表示字符串拼接

第二种就是使用格式化字符串,即包含%的字符串转化
下面是占位符对照表:
2157c4fb9a993485e0d7b6a0c4d339a3.png

#例子
a=10
print("这是一个数字:%d" % (a))	#输出结果:这是一个数字:10

第三种就是字符串的format函数,详细可看这篇博文:链接在此

#例子
a=10
print("这是一个数字:{}".format(a))	#输出结果:这是一个数字:10

第四种使用花括号进行格式,即f-string格式化,f-string格式化 就是在字符串模板前面加上f,然后占位符使用{},里面直接放入对应的数据对象,可以是变量或者表达式。

a = "测试"
salary = 10000
print(f'{a}:1+1={1+1}')
# 指定宽度,为了输出对齐,我们需要指定填入的字符串的宽度。方法是在括号里面的变量后面加上:宽度值
print(f'{salary:10}') 
# 左对齐,如果想左对齐,可以在括号里使用 < 符号
print(f'{salary<10}')
# 小数点后位数,如果我们想指定小数点后保留几位,可以像这样{salary:<8.1f}后面的.1f就表示小数点后面保留1位
print(f'{salary:<8.1f}')
# 不足补零,如果我们想在不足指定宽度的时候不是补空格,而是补数字0
print(f'{salary:08}')
# 16进制格式化数字:
# 用 x 表示格式化为16进制,并采用小写格式
print(f'数字65535的16进制表示为:{65535:x}')
# 用 X 表示格式化为16进制,并采用大写格式
print(f'数字65535的16进制表示为:{65535:X}')
# 字符串内容里有花括号,采用 f-string 方式格式化的 字符串内容本身就有 { 或者 } 符号,一定要 双写 进行转义,否则会被当成是 格式化占位符
print(f'文章中 { 符号 出现了 {salary} 次')

陆 Python的数据类型

数据类型就是我们通常所说的整数、小数、单词等这些数据,但是由于计算机不像人一样聪明(之所以有人说计算机很聪明是因为计算机是由历代的计算机大牛的智慧结合而成,俗话说三个臭皮匠赛过诸葛亮嘛!更何况是这些臭皮匠还是大牛呢!),它不能辨别这些数据的通用性,一般严格区分,所以导致编程语言出现数据类型。
在Python语言中,是可以不考虑数据类型的,但是还是有数据类型之分,只是不严格。
在Python语言里,分两大类数据类型:基本数据类型,复合数据类型
基本数据类型可以理解为汉语里的字、词或者英文里的单词。
复合数据类型可以在上句所理解的基础上为汉语和英文里的句子、文章。

6.1 基本数据类型

以下是Python的基本数据类型:
(1)整数:int包括正整数、负整数。如:1024、-1024。整型有四种进制表示,分别为:二进制、八进制、十进制、十六进制,说明如下表所示:

种类 描述 引导符
二进制 由 0 和 1 组成 0b 或 0B
八进制 由 0 到 7 组成 0o 或 0O
十进制 默认情况
十六进制 由 0 到 9、a 到 f、A 到 F 组成,不区分大小写 0x 或 0X

(2)浮点数:float,由整数部分和小数部分组成。
(3)布尔类型:bool
(4)空:None,表示不存在 ,和其他语言中NULL一个道理
(5)字符串:string

注意:一些数据类型之间是可以使用特定的函数相互转换的,比如:int可以转换成float

  • 1、字符串一定要注意 在Python中,单引号和双引号引的数据都是字符串,类型是str(字符串)
  • 2、三引号在Python,也是字符串
  • 3、字符串中的转移符号:
    • \n 换行
    • \t 制表符

6.2 复合数据类型

以下是Python的复合数据类型:
(1)列表:list
(2)集合:set
(3)字典:dict
(4)元组:tuple

柒 常见的运算符

具有特殊含义,能够进行数据(数值)运输的符号,其实就是数学里的符号,+-*/等符号。

7.1 类别

(1)算术运算符
(2)关系运算符
(3)逻辑运算符
(4)赋值运算符
(5)位运算
(6)成员运算符
(7)身份运算符

7.2 算术运算符

算术运算符一般是说进行数学运输的符号。
在Python中算术运算符有如下:
(1)数学的加法运算:+
(2)数学的减法运算:-
(3)数学的乘法运算:*
(4)数学的除法运算 注意:结果可能是小数:/
(5)数学的求余数(求模、求余):%
(6)整除://
(7)幂次方:**

7.3 逻辑运算符

(1)与:and
(2)或:or
(3)非:not

7.4 关系运算符

(1)等于: ==
(2)不等于:!=
(3)大于: >
(4)小于:<
(5)大于等于:>=
(6)小于等于:<=

7.5 赋值运算符

(1)简单的赋值运算符:=
(2)加法赋值运算符:+=
(3)减法赋值运算符:-=
(4)乘法赋值运算符:*=
(5)除法赋值运算符:/=
(6)取模赋值运算符:%=
(7)幂赋值运算符:**=
(8)取整除赋值运算符://=

注意:在Python中,=表示赋值,==表示数学上的等于

7.6 位运算

(1)按位与运算符:&
(3)按位或运算符:|
(4)按位异或运算符:^
(5)按位取反运算符:~
(6)左移动运算符:<<
(7)右移动运算符:>>

7.7 成员运算符

(1)如果在指定的序列中找到值返回 True,否则返回 False:in
(2)如果在指定的序列中没有找到值返回 True,否则返回 False:not in

7.8 身份运算符

(1)判断两个标识符是不是引用自一个对象:is
(2)判断两个标识符是不是引用自不同对象:is not

7.9 运算符优先级

运算符 描述(由上至下对应优先级由高到低)
** 幂运算
~ + - 取反、正号、负号
* / % // 乘、除、取模、取整除
+ - 加法、减法
>> << 右移、左移
&
^ | 异或、或
<= < > >= 比较运算符
== != 是否等于、是否不等于
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

捌 帮助命令

8.1 dir()

dir()用来查询一个类或者对象所有属性。

dir(list)

8.2 help()

help()函数帮助我们了解模块、类型、对象、方法、属性的详细信息。

help(list)

玖 其他

9.1缩进

Python 不使用 {} 来控制类、函数、逻辑判断等,而是使用缩进,缩进的空格可变。如下所示:

if True:
    print(True)
else:
    print(False)

9.2 多行显示

a = 128
b = 1024
c = 512
d = a + \
    b - \
    c

如果包含在 []{}() 括号中,则不需要使用 \

编码

Python2 中默认编码为 ASCII,假如内容为汉字,不指定编码便不能正确的输出及读取,比如我们想要指定编码为 UTF-8,Python 中通过在开头加入 # -*- coding: UTF-8 -*- 进行指定。

Python3 中默认编码为 UTF-8,因此在使用 Python3 时,我们通常不需指定编码。

9.3 可以指定使用的编译器路径

#! /etc/python
#! 编译器绝对路径文件夹

9.4 字符编码

# 字符串编码
print ('你好'.encode('utf8')) # 输出 b'\xe4\xbd\xa0\xe5\xa5\xbd'
print ('你好'.encode('gbk'))  # 输出 b'\xc4\xe3\xba\xc3'
# 字节串解码
avatar
小C&天天

修学储能 先博后渊


今日诗句