当前位置: 首页 > news >正文

【Python】基础语法

1. 变量

1.1. 变量的创建

变量的定义规则:

  1. 变量只能由数字,字母,下划线构成,不能包含特殊符号
  2. 数字不能作为变量开头
  3. 变量名不能和 Python 的关键字重复
  4. Python 的变量是区分大小写的

除了上述的硬性规则外,还建议变量的取名应该遵守见名知意的原则,还有驼峰或者蛇形命名规范

例如 maxSum / max_sum

变量的创建:

通过“ = ”可以对变量进行创建和赋值

avg = (10 + 20 + 30 + 40) / 4
print(avg)

1.2. 变量的类型

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

  1. 整数 int 。Python 中的 int 表示的整数是没有范围的,不像 C++ 和 Java 中 int 的最大值为 2 的 31 次方
num1 = 10000000000000000000
num2 = 10000000000000000000
print(type(num1))
print(num1 + num2)

  1. 浮点数 float 。Python 中的浮点数是双精度的,占用 8 个字节,没有单精度
  2. 字符串 str . Python 中的字符串用单引号和双引号都可以,根据这个特性,就可以实现一个字符串中可以带上双引号,不用再像 Java 中进行拼接了
e = 'my name is "shuaige"'
print(e)

还可以使用三引号

e = '''my 'name' is "shuaige"'''
print(e)

Python 中也可以进行字符串的拼接

string1 = 'hello '
string2 = 'word'
print(string1 + string2)

还可以通过 len() 函数求出字符串的长度

print(len(string1))

布尔类型 : True / False

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

a = 10
print(type(a))
a = 'hello'
print(type(a))
a = True
print(type(a))

Python 是一个动态类型的语言, 在定义类型的时候也可以选择声明变量类型, 但后续类型还是可以改变

a : int = 10

2. 注释

在 Python 中是使用 # 来表示注释的

# 打印 a 的类型
print(type(a))

还可以通过文档字符串的形式来表示文档注释,通过三个引号来表示,单引号和双引号都可以

"""这是一个文档字符串,表示文档注释  
"""

3. 输入输出

之前一直用的 print 就是输出的函数,可以直接传入变量,常量进行打印

格式化输出:

a = 10
print(a)
print(f"a = {a + 10}")

如果直接打印 a ,就是打印它本身被赋予的常量,通过 f - string (格式化字符串)的方式可以在字符串中嵌入变量或者表达式,实现格式化输出的效果

输入:

num = input("请输入一个数字:")
print(f"您输入的数字是:{num}")

input 执行的时候就会等待用户输入,还可以传入字符串作为输入提示

input 返回的是一个字符串,如果想要进行整形的计算,就需要进行转换:

num1 = input("请输入一个数字:")
num2 = input("请输入一个数字:")
print(f"{num1} + {num2} = {int(num1) + int(num2)}")

同理,还有 str() ,float() 等其他类型的转换

4. 运算符

4.1. 算术运算符

在 Python 中除了有 + ,- , * ,/ 之外,还有 乘方 **, //(地板除法,向下取整) 的运算符,并且 Python 中的 / 是可以得到小数的,并不像 Java 那样取整数部分

print(1 / 2)
print(2 ** 2)
print(2 ** 0.5)
print(3 // 2)
print(-7 // 2)

** 运算符可以是整数也可以是小数,上面的 -7 // 2 ,按理说是 -3.5 ,由于向下取整,就往更小的方向取,也就是 -4

4.2. 关系运算符

> , < , == , >= , <= , != 这些关系运算符都是和 Java 一样的,需要注意的是,关于 str 的比较是可以使用 == 和 != 来进行比啊交的,这一点和 Java 不同

还有关于浮点数的比较,使用 == 来比较的话是存在一定问题的,因为浮点数在内存中的存储和表示是可能存在误差的,这样的误差在进行算术运算时就可能会被放大

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

Python 中还支持连续比较的写法,Java 中是不支持的

print(1 < 2 < 3)

4.3. 逻辑运算符

and : 逻辑与,相当于 Java 中的 &&

or:逻辑或,相当于 Java 中的 ||

not :逻辑取反,相当于 Java 中的 !

短路求值:和 Java 中是一样的,在进行 and 判断时,左边的判断为 False,那么右边就不用执行了,进行 or 判断时,左边判断为 True ,右边就不用执行了

4.4. 赋值运算符

= 就是赋值运算符,Python 中有以下几种赋值操作

a = 10
a = b = 10
a,b = 10,20

还有 += ,-= ,*=,&=,/=,**=,//= 这样的操作,而自增++,自减--,这样的操作在 Python 中是不支持的

相关文章:

【Python】基础语法

1. 变量 1.1. 变量的创建 变量的定义规则&#xff1a; 变量只能由数字&#xff0c;字母&#xff0c;下划线构成&#xff0c;不能包含特殊符号数字不能作为变量开头变量名不能和 Python 的关键字重复Python 的变量是区分大小写的 除了上述的硬性规则外&#xff0c;还建议变量…...

scala 类的继承

继承的定义 idea实例 语法 重写 重写&#xff1a;在子类中重新定义父类的同名方法 idea实例 多态 多态&#xff1a;传入的对象不同&#xff0c;调用的方法的效果就不同&#xff01; 原理&#xff1a;参数是父类类型 idea实例 构造器...

穷举vs暴搜vs深搜vs回溯vs剪枝(一)

文章目录 全排列子集找出所有子集的异或总和再求和全排列 II电话号码的字母组合 全排列 题目&#xff1a;全排列 思路 通过深度优先搜索的方式&#xff0c;不断枚举每个数在当前位置的可能性&#xff0c;然后回溯到上一个状态&#xff0c;直到枚举完所有可能性得到正确的结果 r…...

枚举的应用

1.枚举的语法特点 枚举是jdk1.5提供的一个特性 枚举是一个特殊的类&#xff0c;这个类的对象的数量是有限的。在定义枚举类的同时就已经确定了类对象及类对象的数量。 枚举使用enum关键字定义 class A{} enum A{} 在枚举类中的第一行&#xff0c;就需要提供枚举类的对象&a…...

读数据工程之道:设计和构建健壮的数据系统14源系统

1. 源系统中的数据生成 1.1. 数据工程师的工作是从源系统获取数据&#xff0c;对其进行处理&#xff0c;使其有助于为下游用例提供服务 1.2. 数据工程师的角色将在很大程度上转向理解数据源和目的地之间的相互作用 1.3. 数据工程的最基本的数据管道任务——将数据从A移动到B…...

基于SpringBoot+Vue的厨艺交流系统的设计与实现(源码+定制开发)厨艺知识与美食交流系统开发、在线厨艺分享与交流平台开发、智能厨艺交流与分享系统开发

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

STMicroelectronics 意法半导体芯片选型表

意法半导体作为全球知名的半导体厂商&#xff0c;其产品广泛应用于各个领域&#xff0c;从消费电子到工业控制&#xff0c;从汽车电子到通信设备&#xff0c;都能看到意法半导体芯片的身影。在电子硬件设计领域&#xff0c;芯片的选型至关重要。亿配芯城&#xff08;ICgoodFind…...

TCP/IP 寻址

TCP/IP 寻址 概述 TCP/IP&#xff08;传输控制协议/互联网协议&#xff09;是一组用于数据网络的通信协议。它们定义了数据如何在网络上从一个设备传输到另一个设备。在TCP/IP网络中&#xff0c;每个设备都有一个唯一的地址&#xff0c;称为IP地址&#xff0c;用于标识网络上…...

深入探索 APKTool:Android 应用的反编译与重打包工具

文章目录 一、反编译 APK1.1 解压 APK1.2 DEX 文件转换1.3 资源解码 二、重新打包 APK2.1 资源重新编译2.2 smali 转换为 DEX2.3 打包 APK2.4 签名 APK 三、技术原理3.1 Smali/Baksmali3.1.1 DEX 文件格式3.1.2 Smali 语法3.1.2.1 指令3.1.2.2 寄存器3.1.2.3 操作码3.1.2.4 注释…...

软件测试与软件缺陷的基础知识

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

【JPCS独立出版,EI检索稳定】第三届能源互联网及电力系统国际学术会议(ICEIPS 2024)

第三届能源互联网及电力系统国际学术会议&#xff08;ICEIPS 2024&#xff09; 2024 3rd International Conference on Energy Internet and Power Systems ICEIPS 2024已成功申请JPCS - Journal of Physics: Conference Series (ISSN:1742-6596) ICEIPS 2024独立出版&…...

ssm配置模式

新版 用Java类&#xff0c;全注解demo案例 1. AppConfig.java (Spring主配置类)package com.example.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.cont…...

[MySQL课后作业]人事管理系统的SQL实践

第一题 1.假设某商业集团中有若干公司&#xff0c;人事数据库中有3个基本表: 职工表:EMP(E#.ENAME,AGE, SEX, ECITY)。 其属性分别表示职工工号、姓名、年龄、性别和居住城市。 工作表:WORKS(E#,C#,SALARY)。其属性分别表示职工工号、所在公司的编号和工资。 公司表:COMP(C#,CA…...

【MySQL】增删改查-进阶(二)

目录 &#x1f334;新增 &#x1f384;查询 &#x1f6a9;聚合查询 &#x1f3c0;聚合函数 &#x1f3c0;group by子句 &#x1f3c0;HAVING &#x1f6a9;联合查询 &#x1f3c0;内连接 &#x1f3c0;外连接 &#x1f3c0;自连接 &#x1f3c0;子查询 &#x1f3c0…...

cefsharp79.1.360(Chromium 79.0.3945.130)支持H264视频播放-PDF预览 老版本回顾系列体验

一、关于此版本 版本:Cef 79.1.36/CefSharp 79.1.360/Chromium 79.0.3945.130/支持H264/支持PDF预览 支持PDF预览和H264推荐版本 63/79/84/88/100/111/125 运行环境需要 visual c++ 2015不支持xp/vista/2003/2008默认不支持h264(版权问题)支持打印预览 print preview已知问题…...

【Linux】main函数的参数列表从何而来?

Linux系统进程通过exec系列函数启动新程序时&#xff0c;argc整型 、 argv数组 和 环境变量表 environ 会作为 exec 系列函数的参数&#xff0c;显式传递给新程序的 main 函数。 main函数的参数列表 在C语言中&#xff0c;main函数的标准参数列表通常如下所示&#xff1a; in…...

缓冲区类QBuffer

1、QBuffer继承自QIODevice 2、是一种随机设备 3、和QFile类似&#xff0c; 4、有了 QBuffer&#xff0c;你可以把 QByteArray 当成文件一样来操作 其主要作用就是像QFile操作文件一样来操作一块QByteArray&#xff08;内存区域&#xff09;&#xff0c;比如读和写 常用方…...

从一个事故中理解 Redis(几乎)所有知识点

作者&#xff1a;看破 一、简单回顾 事故回溯总结一句话&#xff1a; &#xff08;1&#xff09;因为大 KEY 调用量&#xff0c;随着白天自然流量趋势增长而增长&#xff0c;最终在业务高峰最高点期占满带宽使用 100%。 &#xfeff; &#xfeff; &#xff08;2&#xff…...

MySQL程序介绍<二>

目录 mysqlcheck - 表维护程序 Mysqldump - 数据库备份程序 mysqladmin - MySQL 服务器管理程序 mysqlshow - 显⽰数据库、表和列信息 mysqldumpslow - 总结慢查询⽇志⽂件 ​编辑 mysqlbinlog - 处理⼆进制⽇志⽂件 mysqlslap - 负载仿真客⼾端 接着上篇继续介绍MySQL…...

Java项目实战II基于Spring Boot的毕业就业信息管理系统设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着高校扩…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...