python从入门到精通:基础语法讲解

news2024/9/24 9:23:42

1、字面量

字面量:在代码中,被写下来固定的值,称之为字面量。

python中常用的几种数据类型:

类型描述说明
数字(Number)

整数(int)

浮点数(float)

复数(complex)

布尔(bool)

整数(int):10,-10

浮点数(float):3.14

复数(complex):3+4j,以j结尾表示复数

布尔(bool)表达现实生活中的逻辑,即真和假;

TRUE本质上是一个数字记作1,FALSE记作0

字符串(string)描述文本的一种数据类型字符串有任意数量的字符组成
列表(List)有序的可变列表python中使用最频繁的数据类型,可有序记录一堆数据
元组(Tuple)有序的不可变序列可有序记录一堆不可变的python数据集合
集合(Set)无序不重复集合可无序记录一堆不重复的数据集合
字典(Dictionary)无序Key-Value集合可无需记录一堆Key-Value型的python数据集合

字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字组成。

比如:"你好!"、"python";字符串中,字符串需要用双引号(")包围起来,也就是说被引号包围的,都是字符串。

类型程序中写法说明
整数10、-10与现实无异
浮点数3.14、-5.2与现实无异
字符串"你好!"程序中需要加上双引号以表示字符串

2、注释

在程序代码中对程序代码进行解释说明的文字;注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂代码的执行作用,能够大大增强程序的可读性。

· 单行注释:以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,只是辅助说明。

# 在屏幕上打印出hello
print("hello")
# #与注释内容之间最好以一个空格隔开

· 多行注释:以一对三个引号引起来的("""注释内容""")来解释这一段代码的作用使用方法。

多行注释主要用于解释:1、整个python文件 2、类 3、方法。 

3、变量

在程序运行时,能储存计算结果或能表示值的抽象概念,简单地说,变量就是在程序运行时,记录数据用的。

定义格式:

变量名称=变量的值

# 定义一个变量,用来记录钱包余额
money=100;
# 输出变量记录的内容
print("余额还有:",money)
# 花费10元买冰淇淋
money = money-10;
print("余额还有:",money);

4、数据类型

主要接触的数据类型有三种:

类型描述说明
int整型(有符号)数字类型,存放整数
float浮点型(有符号)数字类型,存放小数
string字符串类型用引号括起来的数据都是字符串

可以通过type( )来得到数据的类型。

# 通过print语句,直接输出类型信息
print(type(10))
print(type(3.14))
print(type("你好"));
# str就是string的缩写
# 用变量存储type()的结果(返回值):
int_type = type(10)
float_type = type(3.14)
str_type = type("你好")
print(int_type)
print(float_type)
print(str_type)
# type()也可以查看变量中存储的数据类型
name = "小杜";
name_type = type(name);
print(name_type)

通过type(变量)可以输出类型,查看的是变量存储的数据的数据类型,因为变量无类型。

5、数据类型转换

数据类型之间,在特定场景下,是可以相互转换的,如字符串转数字、数字转字符串等。

适用场景:

1、从文件中读取的数字,默认是字符串,需要将其转换为数字类型

2、后续input( )语句,默认结果是字符串,若需要数字也需要转换

3、将数字转换出字符串用以写出到外部系统。

语句说明
int(x)将x转换成一个整数
float(x)将x转换成一个浮点数
str(x)将对象x转换为字符串

这三个语句都是有返回值的,我们可以直接通过print输出,也可以用变量存储结果值。 

# 将数字类型转换成字符串
num_str = str(10);
print(type(num_str), num_str);
# 将字符串转换成数字类型
str_int = int("20")
print(type(str_int), str_int);
# 想要将字符串转换成数字类型,必须要求字符串内容全是数字
str_int2 = int("你好");
print(type(str_int2), str_int2);
# 整数与浮点数的相互转换
float_int = int(3.14);
print(type(float_int), float_int);
int_float = float(3);
print(type(int_float), int_float);
# 浮点数转换为整数会丢失精度

6、标识符

在python程序中,我们可以给很多东西起名字,比如:变量的名字、方法的名字、类的名字等等,这些名字,我们统一称之为标识符,用来做内容的标识。所以标识符是用在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。

标识符命名规则-内容限定:

标识符命名中,只允许出现:

· 英文

· 中文

· 数字

· 下划线(_)

这四类元素,其余任何内容都不允许。需要注意的是:不推荐使用中文,数字不可以用作开头。

标识符命名规则-大小写敏感:

A = "hehe";
a = "haha";
print(A);
print(a);
# 字母a的大写和小写,是完全能够区分的

标识符命名规则-不可使用关键字:

 python中有一系列单词,称之为关键字,关键字在python中有特定作用,我们不可以使用它们作为标识符。

# 规则1:内容限定
# 1_a = "zhansan";
# 规则2:大小写限定
I ="haha";
i = "hehe";
print(I)
print(i)
# 规则3:不可使用关键字
class = 1;
print(class)

 变量命名规范-见名知意:

简单明了,看到名字,就知道含义,并且在明了的情况下减少长度,确保简洁。

变量命名规范-下划线命名法:

多个单词组合成变量名,是用下划线分割。

变量命名规范-英文字母全小写:

命名变量中的英文字母,应该全部小写。

7、运算符

算数(数学)运算符:

运算符描述说明
+两个对象相加a+b输出结果
-得到负数或是一个数减去另一个数a-b输出结果
*两个数相乘或是返回一个被重复若干次的字符串a*b输出结果
/a除以b
//取整除返回商的整数部分9//2输出结果4
%取余返回除法的余数如9%2=1
**指数即a^b
#算数运算符
print("1+1=", 1 + 1)
print("2*2=", 2 * 2)
print("2/2=", 2 / 2)
print("5%2=", 5 % 2)
print("5//2=", 5 // 2)
print("5**2=", 5 ** 2)

 赋值运算符:

运算符描述示例
=赋值运算符把=号右边的结果赋给左边的变量,如num=2*3,结果num的值为6
+=加法赋值操作符c+=a等效于c=c+a
-=减法赋值操作符c-=a等效于c=c-a
*=乘法赋值操作符c*=a等效于c=c*a
/=除法赋值操作符c/=a等效于c=c/a
%=取模赋值操作符c%=a等效于c=c%a
**=幂赋值运算符c**=a等效于c=c**a
//=取整除赋值运算符c//=a等效于c=c//a
# 赋值运算符
num = 2*3;
# 复合赋值运算符
num = 1;
num += 1;
print("num+=1", num);
num -= 1;
print("num-=1", num);
num *= 2;
print("num*=2", num);

8、字符串扩展

8.1、字符串的定义方式

· 字符串在python中有多种定义方式:

1、单引号定义法:name='zhangsan';

2、双引号定义发:name="zhangsan";

3、三引号定义法:name='''zhangsan''';

三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,他就是字符串;不使用变量接收它,就可以作为多行注释使用。

字符串的引号嵌套:如果我们想要定义的字符串本身包含单引号或双引号:

# 单引号定义法,内含双引号
name = '"zhangsan"';
print(type(name),name);
# 双引号定义法,内含单引号
name = "'zhangsan'";
print(type(name),name);
# 使用转义字符 \ 解除引号作用
name = "\"zhangsan\"";
name = '\'zhangsan\'';
print(type(name),name);

8.2、字符串拼接

如果我们有两个字符串字面量,可以将其拼接成一个字符串,通过+即可以完成

print("你好"+"世界");

一般字面量与变量或变量与变量之间会常用字符串拼接,如:

name = "张三";
print("我叫:"+name, "可以教大家法律知识");

需要注意的是,拼接只能用于字符串本身,不能用于其他类型。 

8.3、字符串格式化

我们可以发现字符串拼接的功能较为低下:变量过多,拼接不易;同时字符串与其他类型不能完成拼接。另一种方式便是字符串格式化。

class_num = 57;
avg_salary = 16000;
message = "python大数据学科,北京%s期,平均工资:%s" % (class_num,avg_salary);
print(message)
# %表示:要占位
% s表示:将变量变成字符串放入占位的地方

多个变量占位变量要用括号括起来并按照展位的顺序填入。 

常用占位符:%s、%d、%f

8.4、格式化的精度控制

a = 19.9;
print("%f" % a)
# 输出结果为19.900000

这个时候我们就需要对精度进行控制。我们可以使用符号“m.n”来控制数据的宽度和精度。

· m,控制宽度,要求是数字,设置的宽度小于数字自身,不生效。

· n,控制小数精度,要求是数字,会进行小数的四舍五入。 

示例:

· %5d:表示将整数宽度控制在5位,比如11,会变成[空格][空格][空格]11;

· %5.2f:表示将宽度设置成5位,精度设置成两位

小数点和小数部分也算如宽度计算。

· %.2f:表示不限制宽度,只限制精度

8.5、字符串格式化方式2

通过%符号占位的方式已经相当方便了,还能进行精度控制,但python还用一种更为优雅的解决方案。

通过语法:f"内容{变量}"的格式来快速格式化

# 不理会类型,也不做精度控制

class_num = 57;
avg_salary = 16000;
print(f"python大数据学科,北京{class_num}期,平均工资:{avg_salary}");

8.6、对表达式进行格式化

表达式是一条具有明确执行结果的代码语句。比如:1+1,5*2等等。

print("1+1的结果是:%d" % (1+1))
print(f"1+1的结果是:{1+1}")
# 练习
name = "传智播客";
stock_price = 19.99;
stock_code = "003032";
stock_price_daily_growth_factor = 1.2;
growth_days = 7;
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}");
print("每日增长系数是:%2.1f,经过%d天的增长后,股价达到了:%4.2f" % (stock_price_daily_growth_factor,growth_days,19.99*1.2**7))

9、数据输入

我们前面学习过print语句,可以将内容(字面量、变量)输出到屏幕上。在python中,与之对应的还有一个input语句,用来获取键盘输入。

· 使用input( )语句可以从键盘获取输入

· 使用一个变量接收(存储)input语句获取的键盘输入数据即可

print("请告诉我你的姓名");
name = input();
print("%s" % name)
# name=input("请告诉我你的姓名");
# print("%s" % name)

 需要注意的是:无论键盘输入什么类型的数据,获取到的永远都是字符串类型!

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

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

相关文章

Graph-Cot:图上迭代推理

Graph-Cot:图上迭代推理 提出背景GRAPH-COT 对比 MindMapGRAPH-COT 和 MindMap 多链推理方法结合案例一:复杂症状的诊断案例二:罕见病的诊断案例三:治疗方案的制定 解法拆解目的问题解法 GRAPH-COT 医学问诊 论文:http…

(BO)Bayes-CNN多变量时序预测 基于贝叶斯算法-卷积神经网络多变量时序预测(多输入单输出)Matlab代码

Bayes-CNN多变量时序预测 基于贝叶斯算法-卷积神经网络多变量时序预测(多输入单输出)Matlab代码 程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!(如下) 需要其他的都可以…

CSS3下拉菜单实现

导航菜单&#xff1a; <nav class"multi_drop_menu"><!-- 一级开始 --><ul><li><a href"#">Power</a></li><li><a href"#">Money</a></li><li><a href"#"…

【数模修炼之旅】02 多目标规划 深度解析(教程+代码)

【数模修炼之旅】02 多目标规划 深度解析&#xff08;教程代码&#xff09; 接下来 C君将会用至少30个小节来为大家深度解析数模领域常用的算法&#xff0c;大家可以关注这个专栏&#xff0c;持续学习哦&#xff0c;对于大家的能力提高会有极大的帮助。 1 多目标规划介绍及应…

百度智能云发布3款轻量级+2款场景大模型

文心大模型ERNIE 3.5是目前百度智能云千帆大模型平台上最受欢迎的基础大模型之一。针对用户的常见通用的对话场景&#xff0c;ERNIE 3.5 在指令遵循、上下文学习和逻辑推理能力三方面分别进行了能力增强。 ERNIE Speed作为三款轻量级大模型中的“大个子”&#xff0c;推理场景…

解决连接不上Linux和服务器中的Nacos(Windows中能连接但是Linux中却不行)

报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNKNOWN: Uncaught exception in the SynchronizationContext. Re-thrown. at com.alibaba.nacos.shaded.io.grpc.Status.asRuntimeException(Status.jav 2024-08-13T10:21:52.93708:00 ERROR 27764 --- …

ArduPilot开源代码之FMU+IOMCU设计

ArduPilot开源代码之FMUIOMCU设计 1. 源由2. 设计概念3. FMU & IOMCU特点3.1 FMU&#xff08;Flight Management Unit&#xff09;的主要功能3.2 IOMCU&#xff08;Input/Output Microcontroller Unit&#xff09;的主要功能3.3 主要差异 4. 主/辅助(MAIN/AUX) PWM输出5. 软…

【北京仁爱堂】痉挛性斜颈的早期症状,你了解吗?

在日常生活中&#xff0c;您可能很少听到“痉挛性斜颈”这个名词&#xff0c;但它却是一种不容忽视的疾病。今天&#xff0c;就让我们一起来了解一下痉挛性斜颈的早期症状&#xff0c;以便能够及时发现并采取相应的措施。 痉挛性斜颈是一种局限性肌张力障碍疾病&#xff0c;主要…

Gitlab搭建服务器好做吗 Gitlab搭建服务器操作指南

GitLab是一个强大的开源代码托管和CI/CD工具&#xff0c;广泛用于软件开发的版本控制和自动化构建。对于许多公司和开发团队来说&#xff0c;自行搭建GitLab服务器是一个既具挑战性又有很多好处的选择。本文将详细讨论搭建GitLab服务器的难易程度&#xff0c;提供一份详尽的操作…

死信队列.

“死信”是指在RabbitMQ中那些因为某些原因无法被正常处理的消息。

OpenCV图像滤波(11)中值滤波medianBlur函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 功能描述 该函数使用中值滤波器对图像进行模糊处理。 该函数采用 ksizeksize 的窗口尺寸对图像进行平滑处理。对于多通道图像&#xff0c;每个通道将被独…

Linux发行版深度对比:Ubuntu、CentOS与Fedora

在Linux的广阔世界中&#xff0c;Ubuntu、CentOS和Fedora作为三大主流发行版&#xff0c;各自拥有独特的生态系统、用户基础和开发理念。它们不仅在技术架构上有着显著的差异&#xff0c;更在用户体验、社区支持、软件更新策略以及安全性能等方面展现出各自的特色。本文将对这三…

红黑树R-B Tree

文章目录 概述红黑树的特性红黑树的原理应用为什么设计红黑树红黑树左旋与右旋的区别 概述 红黑树&#xff08;Red Black Tree&#xff09;是一种自平衡的二叉查找树&#xff0c;在计算机科学中广泛使用&#xff0c;其典型的用途是实现关联数组。R-B Tree&#xff0c;全称是 R…

[C++][opencv]基于opencv实现photoshop算法亮度和对比度调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 #include <iostream> #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp"using namespace std; using namespace cv;#defi…

【区块链+食品安全】食药产业全流程可追溯平台 | FISCO BCOS应用案例

为响应国家强化食品安全追溯监管的号召&#xff0c;吉科软信息技术有限公司基于 FISCO BCOS 联盟链开源技术&#xff0c;推出了 食药产业全流程可追溯平台&#xff0c;并应用于吉林省白山市。该平台建立了从食药产品种养殖、生产加工、冷链运输、 流通到消费的全链条可追溯体系…

掌握Python eval()函数:解析动态代码执行的神奇之处

eval() 是 Python 提供的一个内置函数&#xff0c;用于动态执行字符串形式的表达式。 虽然它功能强大&#xff0c;但同时也伴随着一定的风险和局限性。在本文中&#xff0c;我们将详细介绍 eval() 的用法、注意事项以及一些常见的应用场景。 一、eval() 函数的基本用法 基本语…

SpringIOC和SpringAOC

lombok插件 XML<!-- 加载资源文件 --><context:property-placeholder location"classpath:jdbc.properties"></context:property-placeholder><!-- 注入数据源 --><bean id"dataSource" class"com.mchange.v2.c3p0.ComboP…

Supervision 计算机视觉工具

简介 Supervision库是Python计算机视觉低代码工具&#xff0c;旨在为用户提供便捷高效的接口&#xff0c;以便处理数据集并直观地展示检测结果。绘制检测结果&#xff0c;统计指定区域内检测目标数量Supervision都提供了相应的接口 安装库 要求Python版本>3.8 1.安装无图像…

【机器学习】反向传播算法的直观解释、微积分原理以及反向传播中的链式法则

引言 正如有句话说的好&#xff0c;neurons-that-fire-together-wire-together&#xff08;一同激活的神经元关联在一起&#xff09; 文章目录 引言一、反向传播算法的直观解释1.1 前向传播1.2 计算误差1.3 反向传播误差1.4 更新权重 二、微积分原理2.1 损失函数 L L L2.2 链式…

javaEE WebServlet、SpringWebMVC、SpringBoot实现跨域访问的4种方式及优先级

文章目录 1. 前置知识2. 原理和解决方案总结2.1. 跨域不通过原理流程图2.2. 实现原理&#xff1a;添加以下http响应头2.3. 四种跨域实现方式及优先级&#xff08;从高到低&#xff09; 3. 具体实现代码3.1. 跨域全局配置方式-Filter(全适用)3.2. 跨域全局配置方式-SpringMvc3.3…