【Python】--- 基础语法(上)

news2024/11/15 4:00:04

 Welcome to 9ilk's Code World

       

(๑•́ ₃ •̀๑) 个人主页:        9ilk

(๑•́ ₃ •̀๑) 文章专栏:     Python  


本篇博客博主将分享一些python的基础语法。


🏠 常量和表达式

我们可以把Python当成一个计算器,进行一些简单的算术运算

print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)

#输出结果:
#0
#7
#1.6666666666665

形如1 + 2 - 3这样的算式,被称为表达式,算式的运算结果称为表达式的返回值.其中1,2,3这种称为字面值常量,+,-,*,/这种称为运算符或着操作符.

注意:

  • print是Python一个内置函数,用于打印。
  • 运算符和数字之间,可以没有空格,也可以有多个空格,但一般为了美观习惯写上一个空格。
  • 可以使用 + - * / ( ) 等运算符进行算术运算. 先算乘除, 后算加减。
  • 在Python中类似2/3整数除整数结果得到的可能是个小数,而C++/Java等语言结果会发生截断结果为0.

🏠 变量和类型

📌 变量

📒 变量是什么

变量可以视为是一块能够容纳数据的空间 . 这个空间往往对应到 " 内存 " 这样的硬件设备上.
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) 
** 2
result = total / 3
print(result)
在这个代码中, 就需要先计算这四个数字的平均值, 然后再计算方差. 这就需要把计算的平均值使用 变量保存起来.

📒 变量定义

a = 10
  • 上述代码a为变量名,当我们创建多个变量时,就可以用名字来进行区分。
  • 定义变量时不用声明类型。

📒 变量名规则

  • 硬性规则
1.变量名由数字字母下划线构成 .
2.数字不能开头 .
3.变量名不能和 " 关键字 " 重复 .
4.变量名大小写敏感 . num Num 是两个不同的变量名 .
  • 软性规则
1.变量名使用有描述性的单词来表示 , 尽量表达出变量的作用 .
2.一个变量名可以由多个单词构成 , 长一点没关系 , 但是含义要清晰 .
3.当变量名包含多个单词的时候 , 建议使用 " 驼峰命名法 ". 形如 totalCount , personInfo 这种 , 除了首个单词外, 剩余单词首字母大写

📒 变量使用

  • 读取变量的值
a = 10
print(a)

注:首次使用 = 对a进行设置值,这个过程是创建变量(初始化)

  • 修改变量
a = 10
print(a)

a = 20
print(a) # 20

b = 30
a = b

注:修改变量也是使用 = ,此时是相当于是修改a的内容,赋值操作.

📌 变量的类型

变量里面存储的不仅仅是数字 , 还可以存储其它种类的数据 . 为了区分不同种类的数据 , 我们引入了 " 类型 "这样的概念。
注:Python中变量类型,不需要在定义变量的时候显式声明,而只是依靠初始化语句,根据初始化的值的类型来进行确定。比如,a=2确定a是int类型。

📒 type

type print 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型.

📒 整数

a = 10
print(type(a))

输出:class<'int'>

注:在Python中,int能表示的数据范围是”无穷“的,Python中的int是可以根据要表示的数据的大小,自动扩容.因此Python中就没有long,byte,short这样的类型~

📒 浮点数

a = 0.5
print(type(a))

输出结果:class<'float'>

注 : 像C++和Java里,float是4个字节,也叫做"单精度浮点数",double是8个字节,也叫做"双精度浮点数";Python中的float就是双精度浮点数,没有double.

从整形和浮点型设计体现出Python的一个设计哲学:解决一个问题,只提供一种方案.

📒 字符串

a = 'hello'
b = "hello"
print(type(a))
使用 ' ' 或者 " " 引起来的 , 称为 字符串(str) . 可以用来表示文本 .
  • 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. 'hello' 和 "hello" 是
    完全等价的.
  • 如果字符串里面包含了双引号,表示字符串就可以用单引号引起来;如果字符串里面包含了单引号,表示字符串就可以使用双引号引起来。
e = "My name is "Jack"" #这时错误写法会识别成My name is和空字符串

e = 'My name is "Jack" '
  • 如果字符串内同时有双引号和单引号,可以使用三引号'''或者"""
a = '''heoo is "jack" 'mary' '''
a = """heoo is "jack" 'mary' """
print(a)
  • 可以使用 len 函数来获取字符串的长度
a = 'hello'
print(len(a))
  • 可以使用 + 针对两个字符串进行拼接(拼接后对原来的字符串无影响),但是 不能拿字符串和整数/浮点数相加
a = 'hello'
b = 'world'
print(a + b) #helloworld

📒 布尔

布尔类型是一个特殊的类型 , 取值只有两种 , True ( ) False ( ).
a = True
print(type(a))
b = False
print(type(b))

输出结果:

<class 'bool'>

<class 'bool'>

注 : 虽然是特殊的类型但True是可以表示1,False表示0的.比如print(True+1),输出2.

📒 类型的意义

1) 类型决定了数据在内存中占据多大空间 .
(2) 类型其实约定了能对这个变量做什么样的操作 .
总结:类型系统其实是在对变量进行 "归类". 相同类型的变量(数据) 往往具有类似的特性和使用规则.

📌 动态类型特性

a = 10
print(type(a))
a = 'hello'
print(type(a))
在程序执行过程中, a 的类型刚开始是 int, 后面变成了 str
Python , 一个变量是什么类型 , 是可以在 " 程序运行 " 过程中发生变化的 . 这个特性称为 " 动态类型".
  • C++/Java 这样的语言则不允许这样的操作. 一个变量定义后类型就是固定的了. 这种特性则称为 "静态类型"
  • 一个编程语言,是否是动态类型,只是取决于运行时类型是否发生改变,不取决于变量定义的时候是否声明类型!
  • Python作为一个动态类型的语言,在定义变量的时候,也是可以写类型的
a:int  = 10
b:str = 'hello'
  • 动态类型特性是一把双刃剑 .
对于中小型程序 , 可以大大的解约代码量 ( 比如写一段代码就可以同时支持多种类型 ).
对于大型程序 , 则提高了模块之间的交互成本 . ( 程序猿 A 提供的代码难以被 B 理解 ).

🏠 注释

📌 什么是注释

注释是一种特殊的代码 , 它不会影响到程序的执行 , 但是能够起到解释说明的作用 , 能够帮助程序猿理解程序代码的执行逻辑。

📌 注释的语法

  • 注释行 : 使用 # 开头的行都是注释.
# 这是一行注释.
  • 文档字符串 :  使用三引号引起来的称为 "文档字符串", 也可以视为是一种注释
"""
这是文档字符串
这是文档字符串
"""

注:

1.可以包含多行内容 ,
2.一般放在 文件 / 函数 / 类 的开头 .
3.""" 或者 ''' 均可 ( 等价 ).

📌 注释的规范

1. 内容准确 : 注释内容要和代码一致 , 匹配 , 并在代码修改时及时更新。
2. 篇幅合理 : 注释既不应该太精简 , 也不应该长篇大论。
3. 使用中文 : 一般中国公司都要求使用中文写注释 , 外企另当别论。
4. 积极向上 : 注释中不要包含负能量。

🏠 输入输出

程序需要和用户进行交互:
1. 用户把信息传递给程序的过程 , 称为 " 输入 "。
2. 程序把结果展示给用户的过程 , 称为 " 输出 "。
输入输出的最基本的方法就是控制台。   用户通过控制台输入一些字符串 , 程序再通过控制台打印出一些字符串。
输入输出的最常见方法是图形化界面 . 如我们平时用到的 QQ, 浏览器 , steam , 都不需要用户输入命令 , 而只是通过鼠标点击窗口点击按钮的方式来操作。

📌 通过控制台输出

Python 使用 print 函数输出到控制台。
print('hello')
不仅能输出一个字符串 , 还可以输出一个其他类型的变量
a = 10
print(a)
b = True
print(b)
更多的时候 , 我们希望能够输出的内容是混合了字符串和变量的。比如输出:num = 10
num = 10
print(f'num = {num}')
  • 这个语法叫做“格式化字符串”,此时可以使用{ }往字符串里嵌入变量或者表达式
  • 使用f作为前缀的字符串,称为f-string,此处的f表示"format"。

📌 控制台输入

python 使用 input 函数 , 从控制台读取用户的输入。
num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')

注:

  • input参数相当于一个“提示信息”,也可以没有参数。
  • input的返回值就是用户输入的内容,是字符串类型。
a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
print(f'a + b = {a + b}')

给a,b输入,最后print打印结果是a + b = 1020。说明此处的结果是字符串拼接,不是算术运算,因为input返回值是str类型。如果想进行算术运算,需要先转换类型。

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

输出结果变为a + b = 30。

通过int()把变量转成了int类型。类似的,使用float(),bool(),str()等可以完成对应的类型转换。

🏠 运算符

📌 算术运算符

+  -   *  /  %  **  // 这种进行算术运算的运算符 , 称为 算术运算符。
  • 有些编程语言中,/整数0会抛异常,/浮点数0会得到无穷大,而Python都认为是除0异常。
  • 整数 / 整数 结果可能是小数. 而不会截断。
  • %不是百分数,而是求余数。
  • **是求乘方,不光能求整数次方,还能开方。
print(4 ** 2)
print(4 ** 0.5)
  • //是取整除法(也叫地板除),整数除以整数,结果还是整数(舍弃小数部分,并向下取整。不是四舍五入)
print(7 // 2)
print(-7 // 2)

📌关系运算符

< <= > >= == != 这一系列的运算符称为 关系运算符 , 它们是在比较操作数之间的关系 .
  • 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False
a = 10
b = 20
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

输出:

True

True

False

False

False

True

  •   关系运算符不光针对整数 / 浮点数进行比较 , 还能针对字符串进行比较。
a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

输出结果:

True

True

False

False

False

True

注:

1. 直接使用 == 或者 != 即可对字符串内容判定相等。

2. 字符串比较大小, 规则是 "字典序"

  • 对于浮点数来说, 不要使用 == 判定相等。
print(0.1 + 0.2 == 0.3)

输出:False。

print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)

输出结果:

0.1

0.2

0.3

0.3000000000000004

注 : 针对浮点数来说,使用==比较相等,存在一定风险。因为浮点数在内存中的存储和表示,是可能存在误差的,这样的误差在进行算术运算时就可能被放大,从而导致==的判定出现误判。

a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

正确的比较方式:不再严格比较相等,而是判定差值小于允许的误差范围。在实际工程实践中,误差在所难免,只要保证误差在合理范围内即可。

📌 逻辑运算符

and or not 这一系列的运算符称为 逻辑运算符。
  • and并且,两侧操作数均为True,最终结果为True,否则为False(有假则为假)。
  • or或者。两侧操作数均为False,最终结果为False,否则为True。(有真则为真)。
  • not逻辑取反。操作数本身为True,则返回False,本身为False,则返回True。
a = 10
b = 20
c = 30
print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)

输出结果:

True

False

False

True

False

True

注:a < b and b < c 这个操作等价于 a < b < c。这个设定和大部分编程语言都不相同。

  • 短路求值
和其他编程语言类似 , Python 也存在短路求值的规则 .
1. 对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行。
2. 对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行。
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

输出结果:

False

True

上述代码没有抛出异常, 说明右侧的除以 0 操作没有真正执行.

📌 赋值运算符

  • = 的使用

= 表示赋值,注意==是比较是否相等。

= 还可以针对多个变量进行赋值。

链式赋值

a = b = 10

多元赋值

a,b = 10,20
#a被赋值为10,b被赋值为20

a,b = b,a
# a,b进行赋值交换
  • 复合赋值运算符
Python 还有一些 复合赋值运算符 . 例如 += - = *= /= %= ,其中 a += 1 等价于 a = a + 1 . 其他复合赋值运算符也是同理。
注:像C++/Java中,存在++/--这样的自增/自减运算符。但Python中则不支持这种运算(设计时为避免对前置后置的混淆而不支持),如果需要使用,则直接使用+=1或者-=1。

📌 其他运算符

除了上述之外 , Python 中还有一些运算符 , 比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符 ( & | ~ ^ << >>) 等。

完。

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

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

相关文章

九芯电子:派对酒吧音箱灯光语音控制方案的优选

随着科技的发展以及智能AI的兴起&#xff0c;人们对交互体验的需求不断增长&#xff0c;派对酒吧音箱灯光语音控制方案是人机交互信息载体。‌九芯电子的NRK3301芯片成为了派对酒吧音箱灯光语音控制方案的理想选择。‌ NRK3301芯片是一款高性能、低成本的32位语音识别芯片&…

windows上传文件精准包含技巧

目录 环境搭建 原理 绕过 结果 环境搭建 需要在php.ini开启upload_tmp_dir选项 这里需要对C:\Windows\Temp有写入权限 文件上传页面 文件包含页面 原理 利用文件上传产生的缓存文件进行命令执行&#xff0c;从而getshell 绕过 你上传文件的时候会生成临时文件,我们需要…

vue3中使用高德地图天气信息

注册一个key 和安全密钥 index.html中 使用script标签 引入生成的key和秘钥 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><link rel"icon" href"/favicon.ico" /><meta name&q…

吐血整理(最全论文指令手册),还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】

今天给大家分享下论文润色、降重、写作的GPT指令提示词&#xff0c;按论文步骤整理 让你的文章更加有逻辑且通顺&#xff0c;助力快速完成论文&#xff0c;相信对你有帮助~ 一、论文写作润色指令 1、写作选题指令 ① 确定研究对象 我是一名【XXXXX】&#xff0c;请从以下素…

叉车7寸两路一体机介绍

叉车7寸两路一体机产品介绍&#xff1a; 1.前后高清双录&#xff1a;能够同时录制叉车行驶过程中的前方和后方影像&#xff0c;提供全面的视觉监控‌。 2.倒车盲区影像&#xff1a;特别针对倒车时的盲区进行影像捕捉&#xff0c;提高倒车安全性‌。 3.技术参数‌&#xff1a; …

以小搏大:Salesforce 十亿参数模型表现超过ChatGPT

小模型的强势崛&#xff1a;轻量化AI如何以高效表现撼动大型模型的统治&#xff01; ©作者|DWT 来源|神州问学 导读 近年来&#xff0c;人工智能领域的迅猛发展使得大型语言模型&#xff08;LLM&#xff09;成为了焦点。这些模型&#xff0c;如OpenAI的GPT-4和Google的…

展会直击 | 美格智能亮相IOTE 2024第二十二届国际物联网展·深圳站

IOTE 2024第二十二届国际物联网展深圳站于2024年8月28日—30日在深圳国际会展中心&#xff08;宝安&#xff09;开展&#xff0c;美格智能携最新的5G/4G AIoT模组与物联网行业解决方案精彩亮相&#xff0c;持续为客户带来通信技术、AI智能方面的创新产品和创新技术解决方案&…

养宠物家里有浮毛怎么办?口碑相传优质浮毛空气净化器汇总

有没有养猫五年以上还是单猫的铲屎官&#xff1f;能不能分享一下怎么才能控制住不养新猫。 从我养的第一只猫长大开始&#xff0c;看到别人家的小幼猫自己也控制不住的想养。到现在已经陆陆续续养了7只了&#xff0c;前段时间看楼下流浪的小三花差点又没忍住...要不是那段时间…

Java 集合Collection(List、Set)Map

集合的理解和优点 1)可以动态保存任意多个对象&#xff0c;使用比较方便!2)提供了一系列方便的操作对象的方法: add、remove、 set、 get等3)使用集合添加,删除新元素的示意代码- Java集合的分类 Java的集合类很多&#xff0c;主要分为两大类&#xff0c;如图&#xff1a; 1…

安美数字酒店宽带运营系统-任意文件读取

漏洞描述&#xff1a; 安美数字酒店宽带运营系统 weather.php 接口存在任意文件读取漏洞&#xff0c;未经身份验证攻击者可通过该漏洞读取系统重要文件&#xff08;如数据库配置文件、系统配置文件&#xff09;、数据库配置文件等等&#xff0c;导致网站处于极度不安全状态 fo…

朴素贝叶斯分类算法

文章目录 贝叶斯定理问题背景朴素贝叶斯朴素贝叶斯分类算法原理朴素贝叶斯分类算法步骤给定示例数据 极大似然估计如何求 P ( 特征 ∣ 类别 ) P ( 类别 ) P(\text{特征} \mid \text{类别}) \times P(\text{类别}) P(特征∣类别)P(类别)&#xff1f;如何求 P ( 类别 ) P(\text{…

网络基础:理解IP地址、默认网关与网段(IP地址是什么,默认网关是什么,网段是什么,IP地址、默认网关与网段)

前言 在计算机网络中&#xff0c;IP地址、默认网关和网段&#xff08;也称为子网&#xff09;之间有着密切的关系。它们是网络通信中的至关重要的概念&#xff0c;但它们并不相同。这里来介绍一下它们之间的关系&#xff0c;简单记录一下 一. IP地址 1. 介绍 IP 地址&#xf…

反爬虫策略收录集

前言 反爬虫&#xff0c;是指对扫描器中的网络爬虫环节进行反制&#xff0c;通过一些反制策略来阻碍或干扰爬虫的正常爬行&#xff0c;从而间接地起到防御目的。下面是一些常见的反爬虫策略的收录。 入门版 封IP 由于服务器有防火墙&#xff08;如果防火墙在TCP/UDP层或者它…

Profinet 从站转 EtherNet/IP 从站网关

产品用途 本产品是 PN(Profinet) 和 EtherNet/IP 网关&#xff0c;使用数据映射方式工作。 本产品在 PN 侧作为 PN IO 从站&#xff0c;接 PN 主站设备&#xff0c;比如西门子 PLC 等&#xff1b;在EtherNet/IP 侧做为 EtherNet/IP 从站&#xff0c;接 EtherNet…

mongodb日期转换

public static void main(String[] args) throws ParseException {// 把mongodb日期转成yyyy-MM-dd HH:mm:ss日期String date "2024-08-27T15:59:40.327Z";date date.replace("Z", " UTC");//注意是空格UTCSimpleDateFormat format new Simpl…

深度学习基础--监督学习

第二章 监督学习&#xff08;Supervised Learning&#xff09; 监督学习模型就是将一个或多个输入转化为一个或多个输出的方式。比如&#xff0c;我们可以将某部二手丰田普锐斯的车龄和行驶里程作为输入&#xff0c;预估的车辆价格则是输出。 这个模型其实只是个数学公式&…

第12章 网络 (5)

目录 12.8 网络层 12.8.1 IPv4 12.8.2 接受分组 12.8.3 交付到本地传输层 本专栏文章将有70篇左右&#xff0c;欢迎关注&#xff0c;查看后续文章。 12.8 网络层 12.8.1 IPv4 IPv4首部&#xff1a; version: 值为4。 IHL&#xff1a; IP header leng…

AI模型:追求全能还是专精?详细阐述

AI模型&#xff1a;追求全能还是专精&#xff1f; 近日&#xff0c;OpenAI预计在秋季推出代号为“草莓”的新AI。从专注于数学问题到处理主观营销策略&#xff0c;"草莓"模型展现出惊人的多样性。而这种全能型 AI 是否代表了未来趋势&#xff1f;相比专攻于某一领域…

Python和MATLAB及R平均意见得分导图

&#x1f3af;要点 文本转语音预测语音视频得分后验分布预测语音质量移动端语音质量测量英伟达GPU深度学习语音质量评估秩统计平均意见得分比较置信区间音频波形质量等分测评转换语音和自然语言相似性评估 JavaScript平均意见得分 平均意见得分是体验质量和电信工程领域中使用…

什么是Cursor?Cursor 是用于编码的 ChatGPT,现在任何人都能在几分钟内制作出应用程序

有时&#xff0c;一款人工智能工具会突然出现&#xff0c;并主导社交媒体上的话题。这款应用程序就是 Cursor&#xff0c;它是一款人工智能编码工具&#xff0c;使用 Claude 3.5 Sonnet 和 GPT-4o 等模型&#xff0c;让你比以往任何时候都更容易构建自己的应用程序。 Cursor 既…