zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符

2023-04-18 14:08:24 时间

在这里插入图片描述

本文已收录于专栏
🌻
《Python 基础》

1、Python 介绍

Python 是一门解释型的编程语言

Python 有哪些特点?

简单、易学,免费开源、高层语言、可移植性、解释性、面向对象、拥有丰富的库

2、变量和数据类型

2.1 注释的使用

通常来说,注释有以下两种作用:

  1. 不让解释器执行注释那句话
  2. 代码说明

Python 中,注释也分为单行注释和多行注释,

单行注释: 以 # 和空格开头的部分
多行注释: 三个引号开头,三个引号结尾(引号不区分单引号和双引号)

'''
三个单引号的 Python 注释
'''

"""
三个双引号的 Python 注释
"""

# 单行注释

2.2 变量以及数据类型

2.2.1 什么是变量?

对于经常需要修改的数据,咱们可以定义为变量

定义变量的语法:变量名 = 变量值 (程序中的 = 作用是赋值的意思)

在 Java 和 C语言的学习中,变量命名,我们一般是类似以下的形式进行命名

Java:
int a = 100;

但Python作为一门弱语言,变量声明的时候对数据类型不是很严格

Python:
a = 100

Python 不用一上来就对变量进行类型声明,至于 a 是什么类型,取决于给a赋值了什么数据,给 a 赋值了100,就表示 a 是一个整型数据~

注意:
敲代码的时候,注意空格,a = 100 这中间是有空格的,a=100 这样写,没有空格的话会报错~

2.2.2 怎么给变量起名?

对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样~

变量名的命名规范:

硬性规则:

  • 标识符由字母、下划线和数字组成,且数字不能开头
  • 严格区分大小写
  • 不能使用关键字

软性规则:(建议遵守)

  • 给变量命名的时候,尽量使用描述性的单词来表示,尽量通过名字来表现变量的作用
  • 当我们使用一个单词描述不清楚的时候,可以使用多个单词来命名,不怕变量名长,而怕变量的含义表达不清楚

当包含多个单词的时候,命名有多种规范:

  • 驼峰命名法:除了第一个单词的首字母之外,后续每个单词的首字母都大写
    例:personInfo,totalCount

  • 蛇形命名法:单词之间使用下划线_来进行分隔
    例:person_info,total_count

2.2.3 变量的类型

变量的类型:对于不同种类的变量做出区分

Python 中的变量的类型,不需要在定义变量的时候显示声明,而只是依靠初始化语句,根据初始化的值的类型来进行确定

🎨 整数 int

  • 在Python,int 能够表示的数据范围,是“无穷”的,可以根据要表示的数据的大小,自动扩容。
  • 在Java中,int 最大能表示到 -21亿->+21亿。
  • 所以Python里面没有long这样的类型,像byte,short这些类型在Python中也不存在,整数都用int表示

🎨 浮点数(小数)float

像 C++ 和 Java里面,float 是四个字节的,也叫做“单精度浮点数”;double 是八个字节,也叫做“双精度浮点数”

把一个二进制位,称为一个 bit,8个 bit 放在一起,就称为是一个字节

Python 中的 float 就是双精度浮点数,等同于C++/Java里的double

🎨 字符串 str

Python 中要求使用单引号或者双引号将一系列的字符引起来,就构成了字符串

如果字符串里面包含了双引号,表示字符串可以用单引号引起来
如果字符串里面包含了单引号,表示字符串可以用双引号引起来

问:如果同时有单引号和双引号,怎么办?

Python 中还有一种字符串,使用 三引号(‘’’ 或者 “”") 表示

例:

Python 中还包含了一些关于 str 的内置函数:

  • len()可以求出字符串中包含了几个字符

例:

打印结果为 5

  • 拼接字符串

把后面的字符串拼接到前一个字符串的末尾

注意,不能把字符串和数字混合相加

例:

打印结果为 helloworld

在Python中,报错,有两种情况:

  1. 语法错误:在程序运行之前,Python解释器就能把错误识别出来
  2. 运行错误:在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题

🎨 布尔 bool

布尔类型是一个特殊的类型,取值只有两种,True(真)和 False(假)

注意:单词首字母要大写

布尔类型主要用于逻辑判断

如果把 布尔 类型的值和 整数 进行算术运算,此时就会把 True 当做 1,把 False 当做 0,但是这样的操作,是没有意义的~

🎨 其他

除了上述类型之外,Python中还有list(列表)、tuple(元组)、dict(字典)、自定义类型等等~

2.2.4 变量类型的意义

不同的类型,占用的内存空间是不同的——即占几个字节

  • int 默认是 4个字节,动态扩容
  • float 固定 8个字节
  • bool 一个字节就够了
  • str 变长的

不同的类型,对应能够进行的操作也是不同的

对于 int 或者 float 类型,可以进行 + - * /,但是不能使用 len

str 类型的变量,可以进行 + 操作, 但是不能进行 -, 不能 *, 也不能 / ,可以使用 len

2.2.5 动态类型特性

程序运行过程中,变量的类型可能会发生改变

看上面这个代码,a 的类型会随着程序的运行,发生改变

打印结果为 int、str、bool

补充:
什么是静态类型?

程序运行过程中,变量的类型始终不变。
像C++、Java中,int a = 10;
a 这个变量在程序运行的整个过程中,始终都是 int
如果尝试 a = “hello”,编译阶段就会报错

一个编程语言是否是动态类型,只是取决于运行时,类型是否发生改变,不取决于变量定义的时候是否声明类型

Python 作为一个动态类型的语言,在定义变量的时候,也是可以写类型的

例:变量名 : 类型

动态类型,写法比较灵活的,提高了语言的表达能力。
然而,在编程中,“灵活”这个词往往是“贬义”,更容易出错!!! 相比之下,静态类型的语言还是更好一些的,尤其是在大型的程序中,多人协作开发

2.2.6 类型转换

可以使用 Python中内置的函数对变量类型进行转换,常用的有如下:

  • int():将一个数值或字符串转换成整数
  • float():将一个字符串转换成浮点数
  • str():将指定的对象转换成字符串形式
"""
使用input()函数获取键盘输入(字符串)
使用int()函数将输入的字符串转换成整数
"""
a = int(input('a = '))
print(a)

3、输入输出

3.1 输出到控制台

控制台: 用户能输入命令,向计算机安排工作,计算机再把结果显示出来的程序

Python 使用 print 函数输出到控制台

print('hello')

这个语法,是叫做 “格式化字符串”,f-string,此处的 f 表示“format”,此时就可以使用 {} 这样的语法,往字符串里面嵌入变量或者表达式

3.2 从控制台输入

input 执行的时候,就会等待用户输入。
input 返回的值,其实是一个 str

如果只是单纯的拿到用户的输入,然后打印,此时就按照 str 打印即可
如果需要根据用户输入的内容进行算术计算,此时就需要把先读到的 str -> int
可以使用 int()

a = input('请输入第一个整数:')
b = input('请输入第二个整数:')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')

如果想把整数转为字符串,可以使用 str()

4、运算符

4.1 算术运算符

+-*/%**//

先算乘方,然后是乘除,最后算加减,如果运算过程中想修改默认的运算顺序,就需要加上()

  • 在Python中,0不能作为除数

一个数除以另一个数,前面的数是被除数,后面的数是除数

  • 在Python中,整数/整数,如果除不尽,得到的就是小数,不会出现截断的情况
  • % 是求余数,7%3结果为1
  • ** 进行乘方运算,既能支持整数次方,也支持小数次方(开方运算)
print(4 ** 2) # 结果为16
print(4 ** 0.5) # 结果为2.0
  • // 取整除法,会对计算的结果进行“向下取整”
print(7 // 2) # 结果为3
print(-7 // 2) # 结果为-4

4.2 关系运算符

<<=>>===!=

关系运算符对应的表达式,值是 布尔类型,表达式符合要求为真,不符合要求为假

关系运算不光可以针对数字进行比较,还能够比较字符串

Python 可以直接使用关系运算符来比较字符串

在C语言中,咱们是用 strcmp 来进行比较字符串,如果直接使用 == ,本质上在比较两个字符串首元素地址

Java 是用 equals方法来进行比较字符串,如果直接使用 == 本质上在比较两个字符串是否是同一个对象

针对浮点数来说,使用 == 比较相等,存在一定的风险!!

因为浮点数在内存中的存储和表示,是可能存在误差的!!这样的误差在进行算术运算的时候就可能被放大,从而导致 == 的判定出现误判!!

正确的比较浮点数相等:
作差,看差值是否小于预期的误差范围

同时,Python中,支持这种连续小于的写法

4.3 逻辑运算符

  • and 并且

两侧操作数均为True,表达式的值为 True,否则为False(一假则假)

  • or 或者

or 或者两侧操作数均为False,表达式的值为False,否则为True(一真则真)

  • not 逻辑取反

只有一个操作数。操作数为True,则返回False,操作数为False,则返回True

逻辑运算符中的细节:短路求值

对于 and 操作来说,如果左侧表达式为 False ,那么整体的值一定是 False,右侧表达式不必求值;
对于 or 操作来说,如果左侧表达式为 True,那么整体的值一定是 True,右侧表达式不必求值

4.4 赋值运算符

链式赋值:

a = b = 10

多元赋值:

a, b = 10, 20

Python中,不支持 ++-- 这样的自增自减操作的