Python基本语法与变量类型

news2024/9/27 9:24:10

一、Python基本语法

1、Python注释

Python 支持两种类型的注释,分别是单行注释和多行注释。

(1)单行注释
单行注释指的是从井号#开始,直到这行结束为止的所有内容都是注释。

# 注释内容

(2)多行注释
Python 使用三个连续的单引号’''或者三个连续的双引号"""注释多行内容。

'''
注释内容1
注释内容2
'''

或者
"""
注释内容1
注释内容2
"""

注意:多行注释不支持嵌套。

2、Python缩进规则

在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。

注意:可以使用快捷键格式化代码:Ctrl + Alt + L

  • Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
  • Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误。

3、Python标识符命名规范

标识符可以理解为一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。

Python 中标识符的命名不是随意的,而是要遵守一定的命令规则:

  • 在 Python 中,标识符中的字母是严格区分大小写的。
  • 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  • 标识符不能和 Python 中的保留字相同。
  • 标识符中不能包含空格、@、% 以及 $ 等特殊字符。
  • Python 语言中,以下划线开头的标识符有特殊含义,例如:
    • 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from…import* 的方式导入;
    • 以双下划线开头的标识符(如__add)表示类的私有成员;
    • 以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。
    • 因此,除非特定场景需要,应避免使用以下划线开头的标识符。
  • Python 允许使用汉字作为标识符,不推荐使用。

4、Python关键字(保留字)

保留字是 Python 语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。

Python中的所有的保留字,如图所示:

在这里插入图片描述
注意:由于 Python 是严格区分大小写的,保留字也不例外。

5、Python内置函数

Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块。

5.1 Python中的所有内置函数

Python中的所有内置函数如下图所示:

在这里插入图片描述

内置函数的具体使用,查看官方文档:https://docs.python.org/zh-cn/3/library/functions.html

注意:不要使用内置函数的名字作为标识符使用,虽然这样做 Python 解释器不会报错,但这会导致同名的内置函数被覆盖,从而无法使用。

5.2 内置函数和标准库函数

内置函数和标准库函数是不一样的。

  • Python 解释器也是一个程序,它给用户提供了一些常用功能,并给它们起了独一无二的名字,这些常用功能就是内置函数。Python 解释器启动以后,内置函数也生效了,可以直接拿来使用。
  • Python 标准库相当于解释器的外部扩展,它并不会随着解释器的启动而启动,要想使用这些外部扩展,必须提前导入。Python 标准库非常庞大,包含了很多模块,要想使用某个函数,必须提前导入对应的模块,否则函数是无效的。
  • 内置函数是解释器的一部分,它随着解释器的启动而生效;标准库函数是解释器的外部扩展,导入模块以后才能生效。一般来说,内置函数的执行效率要高于标准库函数。
  • Python 解释器一旦启动,所有的内置函数都生效了;而导入标准库的某个模块,只是该模块下的函数生效,并不是所有的标准库函数都生效。
  • 内置函数的数量必须被严格控制,否则 Python 解释器会变得庞大和臃肿。一般来说,只有那些使用频繁或者和语言本身绑定比较紧密的函数,才会被提升为内置函数。例如: print() 是 Python 的内置函数。

二、Python变量类型

变量在 Python 内部是有类型的,比如 int、float 等,但是我们在编程时无需关注变量类型,所有的变量都无需提前声明,赋值后就能使用。另外,可以将不同类型的数据赋值给同一个变量,所以变量的类型是可以改变的。

1、变量的定义和使用

Python 使用等号=作为赋值运算符,具体格式为:

name = value

  • name 表示变量名;
  • value 表示值,也就是要存储的数据。

使用 Python 变量时,只要知道变量的名字即可。几乎在 Python 代码的任何地方都能使用变量。

示例代码如下:

a = 10
b = 20
sum = a + b

print(a)
print(b)
print("a + b = ", sum)

1.1 Python是弱类型的编程语言

在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C语言、C++、Java 是强类型语言的代表。和强类型语言相对应的是弱类型语言,Python、JavaScript、PHP 等脚本语言一般都是弱类型的。

Python是弱类型的编程语言。弱类型语言有两个特点:

  • 变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
  • 变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。

注意:

  • 弱类型并不等于没有类型!弱类型是说在书写代码时不用刻意关注类型,但是在编程语言的内部仍然是有类型的。
  • 可以使用 type() 内置函数类检测某个变量或者表达式的类型。

示例代码如下:

a = 10

print(type(a))
print(type("a"))

在这里插入图片描述

2、变量类型

2.1 整数类型(int)

有些强类型的编程语言会提供多种整数类型(short、int、 long 等类型的整数),而 Python是弱类型的语言,并且 Python 的整数是不区分类型的。

Python 中的整数包括正整数、0 和负整数。

Python 整数的取值范围是无限的,不管多大或者多小的数字,Python 都能轻松处理。当所用数值超过计算机自身的计算能力时,Python 会自动转用高精度计算(大数计算)。

示例代码如下:

a = 10
print(a)
print(type(a))
print("-------")

b = -88888888888
print(b)
print(type(b))
print("-------")

a = 8888888888888888_888_888
print(a)
print(type(a))

在这里插入图片描述
为了提高数字的的可读性,Python 3.x 允许使用下划线_作为数字(包括整数和小数)的分隔符。通常每隔三个数字添加一个下划线,类似于英文数字中的逗号。下划线不会影响数字本身的值。

2.2 小数/浮点数(float)类型

Python 只有一种小数类型,就是 float。小数的计算结果一般都是不精确的。

Python 中的小数有两种书写形式:小数形式和指数形式。

(1)十进制形式
这种就是平时看到的小数形式,例如 3.14。

书写小数时必须包含一个小数点,否则会被 Python 当作整数处理。

a = 3.1415926
print(a)
print(type(a))

""" 执行结果
3.1415926
<class 'float'>
"""

(2)指数形式

Python 小数的指数形式的写法为:整个表达式等价于 a×10n。

aEn 或 aen

  • a 为尾数部分,是一个十进制数;
  • n 为指数部分,是一个十进制整数;
  • E或e是固定的字符,用于分割尾数部分和指数部分。
a = 12e4
print("a = ", a)
print("a 类型为 ", type(a))

b = -3.14E-2
print("b = ", b)
print("b 类型为 ", type(b))

""" 执行结果
a =  120000.0
a 类型为  <class 'float'>
b =  -0.0314
b 类型为  <class 'float'>
"""

注意:只要写成指数形式就是小数。

2.3 字符串(String)

Python 中的字符串必须由双引号" "或者单引号’ '包围,具体格式为:

"字符串内容"
'字符串内容'

注意:

  • Python 字符串中的双引号和单引号没有任何区别。
  • 如果字符串中包含特殊字符输出,可以添加反斜杠\进行转义,让 Python 把它作为普通文本对待。

示例代码如下:

str1 = 'I\'m a great coder!'
str2 = "引文双引号是\",中文双引号是“"
print(str1)
print(str2)

在这里插入图片描述
(1)字符串的换行

Python 不是格式自由的语言,它对程序的换行、缩进都有严格的语法要求。

换行书写一个比较长的字符串,必须在行尾添加反斜杠\。

str1 = 'I\'m a great coder!. \
    引文双引号是\",中文双引号是“。 \
    abc123'
print(str1)

num = 1 + 3 / 4 + \
    2 * 3
print(num)
print(type(num))

在这里插入图片描述
(2)Python原始字符串

字符串中包含特殊字符输出,可以添加反斜杠\进行转义。如果特殊字符比较多,稍有疏忽就会出错。
为了解决转义字符的问题,Python 支持原始字符串。在原始字符串中,\不会被当作转义字符,所有的内容都保持“原汁原味”的样子。

在普通字符串或者长字符串的开头加上r前缀,就变成了原始字符串,具体格式为:

str1 = r'原始字符串内容'
str2 = r"""原始字符串内容"""

示例代码如下:

rstr = r'D:\Program Files\Python311\python.exe'
print(rstr)

2.4 布尔类型(bool)

Python 提供了 bool 类型来表示真(对)或假(错)。使用 True 来代表,使用 False 来代表。

示例代码如下:

print(5>3)
print(5<3)

""" 执行结果
True
False
"""

2.5 bytes类型

bytes 是 Python 3.x 新增的类型。

bytes 只负责以字节序列的形式(二进制形式)来存储数据,至于这些数据到底表示什么内容(字符串、数字、图片、音频等),完全由程序的解析方式决定。如果采用合适的字符编码方式(字符集),字节串可以恢复成字符串;反之亦然,字符串也可以转换成字节串。

bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程;bytes 也可以用来存储图片、音频、视频等二进制格式的文件。

示例代码如下:

# 为 bytes() 方法指定字符集
str1 = bytes('bytes() 方法指定字符集', encoding='UTF-8')
print("str1 : ", str1)

# 通过 encode() 方法将字符串转换成 bytes
str2 = "通过 encode() 方法将字符串转换成 bytes".encode('UTF-8')
print("str2: ", str2)

# 通过 decode() 方法将 bytes 转换成字符串
str3 = str2.decode('UTF-8')
print("str3: ", str3)

在这里插入图片描述

2.6 input()函数

input() 函数:用于从控制台读取用户输入的内容。它是 Python 的内置函数。

input() 函数的用法为:

str = input(tipmsg)

  • str:表示一个字符串类型的变量,input 会将读取到的字符串放入 str 中。
  • tipmsg:表示提示信息,它会显示在控制台上,告诉用户应该输入什么样的内容;如果不写 tipmsg,就不会有任何提示信息。

input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符。

示例代码如下:

user_str = input("请输入内容:")
print("打印用户内容:", user_str)

在这里插入图片描述

2.7 print()函数

print() 函数:将内容输出在控制台。它是 Python 的内置函数。支持输出一个变量,也可以同时输出多个变量。

print() 函数的详细语法格式如下:

print (value,…,sep=‘’,end=‘\n’,file=sys.stdout,flush=False)

说明:

  • value 参数:可以接受任意多个变量或值。
  • sep 参数:可以设置的分隔符,默认以空格隔开多个变量。
  • end 参数:可以设置print() 函数输出之后操作符,默认值是换行“\n”。
  • file 参数:可以指定 print() 函数的输出目标,默认值为系统标准输出 sys.stdout,也可以输出到特定文件中。
  • flush 参数:用于控制输出缓存,该参数一般保持为 False 即可,这样可以获得较好的性能。

示例代码如下:

user_name = '赵子龙'
user_age = 18
# 同时输出多个变量和字符串,指定分隔符
print("用户名:", user_name, ",年龄:", user_age, sep='->')

## 结果:用户名:->赵子龙->,年龄:->18

(1)格式化字符串输出

print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出。

在这里插入图片描述
示例代码如下:

name = "赵云"
age = 18
print("用户名:%s,年龄:%d" % (name, age))

## 结果:用户名:赵云,年龄:18

2.8 Python数据类型转换函数

虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。

Python 提供了多种可实现数据类型转换的常用函数。如图所示:

在这里插入图片描述
注意:在使用类型转换函数时,提供给它的数据必须是有意义的,否则会报错。

示例代码如下:

height = 1.98
# 字符串和浮点类型变量不能直接相连,需要提前将浮点类型转换为字符串
print("身高" + str(height))

三、Python运算符

1、算术运算符

算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。

在这里插入图片描述

2、赋值运算符

赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。

Python 中最基本的赋值运算符是等号=;结合其它运算符,=还能扩展出更强大的赋值运算符。

在这里插入图片描述
通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。

3、位运算符

位运算按照数据在内存中的二进制位(Bit)进行操作。

在这里插入图片描述

4、比较运算符

比较运算符,也称关系运算符,用于对常量、变量或表达式的结果进行大小比较。如果这种比较是成立的,则返回 True(真),反之则返回 False(假)。

在这里插入图片描述

4.1 ==和 is的区别

is 与 ==有本质上的区别,完全不是一码事儿。

  • == 用来比较两个变量的值是否相等。
  • is 则用来比对两个变量引用的是否是同一个对象。

示例代码如下:

import time  #引入time模块

t1 = time.gmtime() # gmtime()用来获取当前时间
t2 =  time.gmtime()

print(t1 == t2) #输出True
print(t1 is t2) #输出False

5、逻辑运算符

在这里插入图片描述

6、三目运算符

Python 使用 if else 实现三目运算符(条件运算符)的格式如下:

exp1 if condition else exp2

说明:condition 是判断条件,exp1 和 exp2 是两个表达式。

  • 如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;
  • 如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

这是一种类似于其它编程语言中三目运算符 ? : 的写法。

Python 是一种极简主义的编程语言,它没有引入 ? : 这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。

假设,获取两个数字中较大的一个数?

(1)使用 if else 语句

a = 3
b = 5

if a > b:
    max = a;
else:
    max = b;
print("max = ", max)

(2)使用三目运算符

max = a if a > b else b
print("max = ", max)

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对。

a if a>b else c if c>d else d
应该理解为:a if a>b else ( c if c>d else d )

虽然 Python 运算符存在优先级的关系,但是不推荐过度依赖运算符的优先级,这会导致程序的可读性降低。一般建议:

  • 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,可以尝试把它拆分来书写。
  • 应尽量使用 ( ) 来控制表达式的执行顺序。

– 求知若饥,虚心若愚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ccflow-代码

报表设计目录概述需求&#xff1a;设计思路实现思路分析报表设计&#xff0c;流程运维系统&#xff08;三元log&#xff09;数据源管理和维护是否:debug状态. 0 表示不是, 1 是&#xff0c;如果系统发布后&#xff0c;请将此修改成0&#xff0c;以提高执行效率。在流程运行结束…

Python语言开发学习之使用Python预测天气

什么是wttr&#xff1f; 使用Python预测天气的第一步&#xff0c;我们要了解wttr是什么。wttr.in是一个面向控制台的天气预报服务&#xff0c;它支持各种信息表示方法&#xff0c;如面向终端的ANSI序列(用于控制台HTTP客户端(curl、httpie或wget))、HTML(用于web浏览器)或PNG(…

【微信小程序】解决点击(bindtap)和长按(bindlongtap)冲突

点击事件的执行&#xff1a; <button bindtap"bindtap" bindtouchstart"touchstart" bindtouchend"touchend">按钮</button>可以看到顺序为&#xff1a;touchstart → touchend → tap 长按事件的执行&#xff1a; <button bin…

Blender 渲染与后期处理

文章目录旋转环境贴图&#xff08;天空盒&#xff09;物体只渲染其他物体的阴影而不渲染自身渲染一个背景透明的图片在后期合成中&#xff0c;将渲染结果和一张图片合成到一起输出不同的通道方法一方法二后期制作景深效果渲染单个图层图层渲染单个图层旋转环境贴图&#xff08;…

对程序员超有用的网站!一定要收藏起来!

作为一名专业的程序员&#xff0c;我们应该利用各种渠道来扩充自己的知识。然后做一个技术高超的打工人&#xff01;&#xff08;&#xff09;然后用自己超高的技术&#xff0c;赚超多超多的money! (√) 但是要获取大量的信息就要有优质可靠的信息来源。今天我就把我珍藏的&…

CMOS图像传感器——深入ISO

在之前讲Dual Gain这一HDR技术时,有大致提到过ISO: HDR 成像技术学习(二)_沧海一升的博客-CSDN博客HDR成像技术介绍:staggered HDR、DOL-HDR、DCG,双原生ISO等。https://blog.csdn.net/qq_21842097/article/details/120904447 这一篇文章我们深入讲解一下。 通常…

IP协议详解

IP协议 IP协议格式&#xff1a; 4位版本号&#xff1a;指定IP协议的版本&#xff0c;对于IPv4来说&#xff0c;就是4。 4位首部长度&#xff1a;IP头部的长度是多少个32bit(4字节)&#xff0c;也就是 length * 4 的字节数。4bit表示最大的数字是15&#xff0c;因此IP头部最大…

学会这几招,轻松提升办公效率

技巧一&#xff1a;录屏 录屏需要使用“第三方工具/插件”吗&#xff1f;其实&#xff0c;PPT中有一个内置的“录屏”工具&#xff01; 使用PPT自带的“录屏”工具可以帮助我们快速录制电脑屏幕上的内容&#xff0c;录屏后的录屏结果会自动添加到PPT中&#xff0c;非常适合在PP…

JavaWeb_HTTP+Tomcat+Servlet

一、JavaWeb技术栈 B/S 架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器 架构模式&#xff0c;它的特点是&#xff0c;客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器&#xff0c;获取Web资源&#xff0c;服务器把We…

第三章.逻辑回归—正确率/召回率/F1指标,非线性逻辑回归代码

第三章.逻辑回归 3.2 正确率/召回率/F1指标 正确率(Precision)和召回率(Recall)广泛应用于信息检索和统计学分类领域的两个度量值&#xff0c;用来评价结果的质量。 1.概念&#xff1a; 1).正确率&#xff1a; 检索出来的条目有多少是正确的 2).召回率&#xff1a; 所有正…

Notepad++ 编写html代码快捷键切换到浏览器查看

一、设置Notepad 快速启动浏览器并且运行html1.找到Notepad的安装路径&#xff0c;找到Notepad 的shortcuts.xml文件。2.如图所示&#xff0c;用记事本打开【千万不要用Notepad打开】。打开之后可以看到里面的代码。以启动连接 chrome浏览器为例&#xff0c;选择对应的chrome 代…

【金融学】Financial Markets

Financial MarketsClass1 Financial Markets IntroductionWhat is Financial MarketsFinancial Topics课程目标Class1 Financial Markets Introduction What is Financial Markets “金融不仅仅是关于赚钱&#xff0c;金融应该是关于使某事发生” ----Robert Shiller. Financi…

TCP的3次握手细节

一、什么是TCP的三次握手在网络数据传输中&#xff0c;传输层协议TCP是要建立连接的可靠传输&#xff0c;TCP建立连接的过程&#xff0c;我们称为三次握手。三次握手的具体细节1. 第一次握手&#xff1a;Client将SYN置1&#xff0c;随机产生一个初始序列号seq发送给Server&…

虹科方案|使用 Thunderbolt™ 实现 VMware vSAN™ 连接

一、引言ATTO的Thunderbolt支持VMware ESXi 和ThunderLink产品线&#xff0c;使我们能够创建基于Mac的vSphere设置&#xff0c;从而能够为我们的macOS服务器提供虚拟化服务。 将虚拟硬件、快照和Veeam备份与macOS服务器的简单性相结合&#xff0c;将改变SMB市场的游戏规则。二、…

SVPWM控制技术+Matlab/Simulink仿真详解

文章目录前言一、SVPWM的控制原理二、空间矢量的概念三、电压与磁链空间矢量的关系四、三相逆变器的基本电压空间矢量五、SVPWM 算法的合成原理六、SVPWM 算法推导6.1.七段式SVPWM6.2.五段式SVPWM&#xff08;又称DPWM&#xff09;七、SVPWM 算法实现7.1.合成矢量Uref所处扇区的…

【手写 Promise 源码】第十篇 - Promise.prototype.catch 和 Promise.prototype.finally 的实现

theme: fancy 一&#xff0c;前言 上篇&#xff0c;主要实现了 Promise 的两个静态 API&#xff08;类方法&#xff09;&#xff1a;Promise.resolve 和 Promise.reject&#xff0c;主要涉及以下几个点&#xff1a; Promise.resolve 创建并返回一个成功的 promise&#xff1…

WebDAV之葫芦儿·派盘+纯纯写作

纯纯写作 支持WebDAV方式连接葫芦儿派盘。 推荐一款简单的纯文本编辑软件,纯粹、有安全感、随时、绝对不丢失内容、具备良好的写作体验。界面非常简洁,且功能齐全,旨在给用户们提供贴心、舒适的写作服务。纯纯写作可以实现在Windows桌面PC, Android设备上同步的移动办公软件…

梦熊杯-十二月月赛-钻石组-B.卷王

B. Problem B.卷王(study.cpp) 内存限制&#xff1a;256 MiB 时间限制&#xff1a;1000 ms 标准输入输出 题目类型&#xff1a;传统 评测方式&#xff1a;文本比较 题目描述&#xff1a; 在某个群里&#xff0c;有一个卷王&#xff0c;他很关心群友的学习成绩。 他扬言…

Web API请求查询字符串超长问题

调用Web API时返回“HTTP Error 404.15 - Not Found”的错误提示&#xff0c;如下截图&#xff1a; 经检查&#xff0c;传递的查询参数字符长度超过IIS默认最大查询字符串长度的设置&#xff0c;IIS服务器的 maxQueryString&#xff08;单位&#xff1a;字节&#xff09; 设置&…

一杯白酒搅动的资本江湖

王家卫的电影《东邪西毒》中有句经典台词&#xff1a;酒越喝越暖&#xff0c;水越喝越寒。江湖刀光剑影&#xff0c;唯有酒让武林人士在奔波途中心中一暖。然而&#xff0c;在白酒搅动的资本江湖中&#xff0c;酒企已经很久没有感受到上市的“暖意”了。自2016年金徽酒挂牌上交…