Python语法基础(变量 注释 数据类型 输入与输出 运算符 缩进)

目录

  • 变量
    • 变量命名规则
    • 变量的类型
    • 变量的创建
    • 变量的作用域
  • 注释的方法
  • 数据类型
    • 对象和引用的概念
    • Number(数字)
    • 数据转换
  • 输入与输出
    • 输入函数
    • 输出函数
    • 输出函数的end参数
    • 输出格式
    • 多行语句
  • 运算符
    • 算术运算符
    • 赋值运算符
    • 三目运算符
    • 运算符的优先级
  • 缩进
    • 缩进格式
    • 注意事项
    • 层级嵌套


变量

标识符:用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。

变量命名规则

  1. 变量名必须以字母或下划线字符开头
  2. 变量名不能以数字开头
  3. 变量名称只能包含字母数字字符和下划线
  4. 变量名区分大小写
  5. 不能与关键字重复

变量的类型

类型说明使用
整型变量(int)用来存储整数age = 20
浮点型变量(float)用来存储实数price = 3.99
字符串型变量(str)用来存储字符串name = "Tom"

Python 没有类似 C++ 的long long 和 double 等类型,遇到数据溢出时,会自动扩容。

查看类型的函数:type()

print(type(text))

变量的创建

相比C++的变量创建,Python不需要附加变量的类型。

r = 17
s = "Hello World!"

变量的作用域

在Python中,没有像C++或C语言中的main函数那样的特定入口点。当运行Python程序时,解释器会从脚本的第一行开始执行,逐行执行代码。

global_variable = 42  # 这是一个全局变量def some_function():global num  # 声明num为全局变量print(global_variable)  # 可以在函数内部访问全局变量some_function()
print(global_variable)  # 可以在函数外部访问全局变量

注释的方法

# 单行注释'''
多行注释
'''

数据类型

对象和引用的概念

  1. 对象(Object)是数据的抽象表示,它将数据与操作数据的函数绑定在一起,形成一个完整的实体。对象包含了数据(所谓的属性)和操作数据的方法。
  2. 引用(Reference)则可以看成指向对象的指针。当我们用一个变量名来指向一个对象时,实际上是建立了一个指向该对象的引用。
  3. Python中的所有事物都是对象,像数字、字符串、列表、字典等数据类型,都是对象,函数也是对象,Modules同样也是对象。
  4. 当我们使用一个变量名时,实际上是在操作对象引用,而不是直接操作对象本身。也就是说,变量名仅仅是一个指向目标对象的引用。
  5. 多个变量名可以指向同一个对象,即多个引用可以指向同一个对象。这就是所谓的“传对象引用”。
  6. 如果无引用指向一个对象,该对象将被垃圾回收。

下面我们通过一个简单的例子来说明Python的对象和引用:

a = 123

在这个例子中,我们定义了一个变量a,并将其赋值为整数123。实际上,a是一个引用,它存储了整数对象123的地址。

b = a

现在我们定义了另一个变量b,并将其赋值为变量a的值。由于a存储的是整数对象123的地址,因此b也存储了这个地址。因此,a和b引用了同一个对象。

del a

现在我们删除了变量a。由于a和b引用了同一个对象,因此Python并不会释放整数对象123所占用的内存。只有当没有任何引用指向这个对象时,Python才会释放它所占用的内存。

del b

现在我们删除了变量b。由于没有任何引用指向整数对象123,因此Python会释放它所占用的内存。

Number(数字)

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

以下实例在变量赋值时 Number 对象将被创建:

var1 = 5
var2 = 10

可以使用del语句删除一些 Number 对象引用。

del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

可以通过使用del语句删除单个或多个对象,例如:

del var
del var1,var2, ...... , varN

数据转换

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

str(x) 相较于C++中的 to_string() 函数
int(x) 可以相较于C++中的 stoi() 函数

s = str(123)

注意:

  • 任何类型,都可以通过str(),转换成字符串。
  • 字符串内必须真的是数字,才可以将字符串转换为数字。

输入与输出

输入函数

使用 input() 输入函数来接收输入流的数据

input语句获取的数据类型最终都是:字符串类型的数据

需要自己转换数据类型

使用方法:

  1. 不加参数
  2. 加参数(提示信息)
s = input()
r = input("请输入数字")  # 在输入前会有提示信息

输出函数

print() 输出函数(可接 '\n' 换行)
与 C++ 中的 cout 使用类似
与 java 中的print使用相同 print(str1 + str2 + num) 可以各种拼接

import math
r = float(input("请输入圆的半径:> "))
s = r ** 2 * math.pi / 2  # 将字符串类型的数据转换为float类型
print(s)

输出函数的end参数

在Python中,print()函数默认在输出内容之后会自动添加换行符。如果你希望取消自动换行,可以使用end参数将其设置为空字符串或其他值,以替代默认的换行符。

例如:

print("Hello, ", end='')
print("World")
# Hello, World

上述代码中,将end参数设置为空字符串,因此不会在输出内容之后添加换行符,而是继续在同一行上输出后续内容。输出结果将是"Hello, World"。

你还可以使用其他字符来代替默认的换行符,例如:

print("This is a sentence.", end='!!\n')

这将在输出内容之后添加双感叹号和一个换行符,产生类似"This is a sentence.!!"的输出。

通过调整end参数,你可以控制print()函数的输出格式。


输出格式

w = input("今天的天气情况(可选项:晴天、阴天):")
if w == "晴天":print("打球")
else:print(f"天⽓{w}不打球")
# 等同于 print("天⽓%s不打球" % w)

f 是 Python 中的 f-string 的标志符号,允许在字符串中嵌入变量的值,{w} 是一个占位符,它将被替换为变量 w 的值。当你使用这个字符串时,f 将会触发字符串内的变量替换,生成最终的字符串,其中 {w}w 的值替代。

%s 替换字符串,与C++中的类似用法,不过后面需 加上% + 替换变量。

print(f"对应的摄⽒温度等于: {c:.2f}")  # 进行小数点后两位数的输出
符 号描 述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

多行语句

在编写代码中通常是一行写完一条语句,但如果变量名很长,我们可以使用反斜杠 \ 来实现多行语句在 [], {}, 或 () 中的多行语句。

text1="明天天气"
text2="怎么样,是晴天"
text3= "还是雨天?"print(text1 + \text2 + \text3)

运算符

算术运算符

运算符说明实例结果
+12.45 + 1527.45
-4.56 - 0.264.3
*5 * 3.618.0
/除法7 / 23.5
//整除(向下取整)7 // 23
%取余7 % 21
**幂运算2 ** 4164

赋值运算符

运算符说 明用法举例等价形式
=最基本的赋值运算x = yx = y
+=加赋值x += yx = x + y
-=减赋值x -= yx = x - y
*=乘赋值x *= yx = x * y
/=除赋值x /= yx = x / y
%=取余数赋值x %= yx = x % y
**=幂赋值x **= yx = x ** y
//=取整数赋值x //= yx = x // y
&=按位与赋值x &= yx = x & y
=按位或赋值 x= yx = x
^=按位异或赋值x ^= yx = x ^ y
<<=左移赋值x <<= yx = x << y,这里的 y 指的是左移的位数
<<=右移赋值x >>= yx = x >> y,这里的 y 指的是右移的位数

三目运算符

与 C++ 条件顺序不同

exp1 if contion else exp2

求两数最大值的例子:

a, b = 10, 100
max_element = a if a > b else b
print(max_element)

运算符的优先级

在这里插入图片描述

Python 的 not 与C++的 ! 不相同,not 处于最低优先级,而 ! 处于最高优先级。

x = 6
result = not x & 1
print(result)result = (not x) & 1
print(result)result = not (x & 1)
print(result)# True
# 0
# True
# not x & 1 等同于 not (x & 1) 而非 C++中的 (not x) & 1

缩进

Python最具特⾊的语法之⼀是⽤缩进代替花括号{},而花括号是Java、C++语⾔中表达逻辑关系的语法。

缩进格式

一般习惯采用四个空格,即TAB一次缩进。

w = input("今天的天气情况(可选项:晴天、阴天):")
if w == "晴天":print("打球")
else:print(f"天⽓{w}不打球")
# 等同于 print("天⽓%s不打球" % w)

注意事项

同一代码块缩进量要相同。

Python 虽然不限制代码块的缩进量,你可以随意缩进 n 个空格,但是,同一个代码块内的所有语句都必须拥有相同的缩进量,不能一会缩进 2 个空格,一会缩进 4 个空格。

下面的代码是一个反面教材:

age = int( input("请输入你的年龄:") )
if age < 18 :print("你还未成年,建议在家人陪同下使用该软件!")print("未成年人如果得到了家长的同意,请忽略以上提示。")  #缩进量不对

运行这段代码,Python 解释器会报出语法错误:

SyntaxError: unexpected indent
# 语法错误:意外的缩进

这段代码中,第一个 print() 语句缩进了 4 个空格,第二个 print() 语句缩进了 6 个空格,缩进量不同导致它们不是同一个代码块。Python 会认为第一个 print() 语句是 if 的执行体,而第二个 print() 是一个意外的存在,不知道该把它当做谁的代码块,所以解析失败,报错。


另外需要注意的是,不需要使用代码块的地方千万不要缩进,一旦缩进就会产生一个代码块。

下面的代码是一个反面教材:

info = "Hello"print(info)

这两条简单的语句没有包含分支、循环、函数、类等结构,不应该使用缩进。


层级嵌套

w = input("请输⼊天⽓情况(可选项:晴天、阴天):")
fri_n = input("请输⼊打球伙伴数:")
fri_n = int(fri_n)
if w == "晴天":if fri_n >= 3:print("我们去打球吧")else:print(f"⼈⼿不够")
else:print(f"天⽓{w}不打球")

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

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

相关文章

(论文阅读24/100)Visual Tracking with Fully Convolutional Networks

文献阅读笔记&#xff08;sel - CNN&#xff09; 简介 题目 Visual Tracking with Fully Convolutional Networks 作者 Lijun Wang, Wanli Ouyang, Xiaogang Wang, and Huchuan Lu 原文链接 http://202.118.75.4/lu/Paper/ICCV2015/iccv15_lijun.pdf 【DeepLearning】…

Python--- lstrip()--删除字符串两边的空白字符、rstrip()--删除字符串左边的空白字符、strip()--删除字符串右边的空白字符

strip() 方法主要作用&#xff1a;删除字符串两边的空白字符&#xff08;如空格&#xff09; lstrip() 方法 left strip&#xff0c;作用&#xff1a;只删除字符串左边的空白字符 rstrip() 方法&#xff0c;作用&#xff1a;只删除字符串右边的空白字符 strip 英 /strɪp…

STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录

近期在使用STM32H563ZIT6这款芯片在开发板上使用正常&#xff0c;烧录到自己打的板子就遇到了芯片烧录一次后&#xff0c;再次上电无法烧录的问题。 遇到问题需要从以下5点进行分析。 首先看下开发板的原理图 1.BOOT0需要拉高。 2.NRST脚在开发板上是悬空的。这里我建议大家…

基于AI智能分析网关的智慧视频监控系统一站式解决方案

1、功能概述 TSINGEE智能分析网关EasyCVR智慧视频监控系统基于云-边-端一体化协同架构&#xff0c;可兼容多协议、多类型的设备接入&#xff0c;实现视频数据采集、海量视频汇聚与处理、按需调阅、全网分发、 告警消息推送、数据级联共享、AI智能分析接入等视频能力服务&#…

合并两个有序链表OJ

合并两个有序链表OJ 文章目录 合并两个有序链表OJ一、题目及要求二、思路分析三、代码实现 一、题目及要求 二、思路分析 其次&#xff0c;题目里说了新链表是通过拼接原来的结点形成的&#xff0c;所以说我们不需要开辟新的空间。 三、代码实现 if (list1 NULL) {return li…

Zotero详细功能补充!熟练使用!【进阶版,持续更新】

Zotero安装请参见文章Zotero安装 1.改变条目文件夹 如果直接选择条目直接进行移动&#xff0c;能移动成功&#xff0c;但是原来文件夹和目标文件夹都会存在&#xff0c;实际是复制&#xff01; 如果只想保留在一个文件夹里面&#xff0c;可以选中条目&#xff0c;右击-从分…

ARMday03(寄存器读写、栈、程序状态寄存器、软中断和异常、混合编程)

单寄存器内存读写指令 将一个寄存器中的数值写入到内存&#xff0c;或者从内存中读取数据放在某一个指定寄存器中 指令码和功能 1.向内存中写&#xff1a; str{条件码} 目标寄存器,[目标地址]&#xff1a;将目标寄存器的4字节数值写入到目标地址为首地址的空间中 strh{条件码…

最新AI系统ChatGPT源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+搭建部署教程+附源码

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

CSRF(跨站请求伪造)攻击演示

目录 CSRF(跨站请求伪造)攻击演示CSRF 是什么CSRF 演示项目代码CSRF 演示过程服务启动演示 CSRF(跨站请求伪造)攻击演示 CSRF 是什么 CSRF&#xff08;Cross-Site Request Forgery&#xff09;跨站请求伪造&#xff0c;是一种网络安全攻击&#xff0c;其目标是利用被攻击者在…

软件安全测试怎么做?如何确保软件授权安全

在数字化不断演进的今天&#xff0c;软件安全测试变得至关重要。它验证了软件是否容易受到网络攻击&#xff0c;并检验恶意或意外输入对操作的影响。安全测试的目标是保障系统和信息的安全性和可靠性&#xff0c;确保它们不接受未授权的输入。 一、安全测试准备 开发者必须认识…

【广州华锐互动】太空探索VR模拟仿真教学系统

随着科技的不断发展&#xff0c;人类对宇宙的探索欲望愈发强烈。火星作为距离地球最近的行星之一&#xff0c;自然成为了人类关注的焦点。近年来&#xff0c;火星探测取得了一系列重要成果&#xff0c;为人类了解火星提供了宝贵的信息。然而&#xff0c;实地考察火星仍然面临着…

认识计算机-JavaEE初阶

文章目录 一、计算机的发展史二、冯诺依曼体系&#xff08;Von Neumann Architecture&#xff09;三、CPU基本工作流程3.1 算术逻辑单元&#xff08;ALU&#xff09;3.2 寄存器&#xff08;Register)和内存&#xff08;RAM&#xff09;3.3 控制单元&#xff08;CU&#xff09;3…

万宾科技智能井盖监测仪器助力建设数字化城市

市政公共设施建设在近几年来发展迅速&#xff0c;市政设备的更新换代&#xff0c;资产管理等也成为其中的重要一项。在市政设施建设过程中&#xff0c;井盖也是不可忽视的&#xff0c;一方面&#xff0c;根据传统的管理井盖模式来讲&#xff0c;缺乏有效的远程监控管理方法和手…

【hcie-cloud】【3】华为云Stack规划设计之华为云Stack交付综述【上】

文章目录 前言华为云Stack交付综述交付流程华为云Stack交付流程华为云Stack安装部署流程 交付工具链华为云Stack交付工具链eDesigner - 让解决方案销售更智能eDesigner配置页面 - 基本信息eDesigner配置页面 - 服务及组网配置eDesigner配置页面 - 弹性云服务器/ECSeDesigner配置…

【工具推荐】一键多平台文章发布神器推荐(免费)

hello&#xff0c;大家好&#xff0c;我是你们老朋友洛林&#xff0c;上一篇文章说到自己深受多平台手动发布的折磨「传送门」&#xff0c;准备开发一款文章多平台工具&#xff0c;后来联系到 Wechatsync 原作者进行了简单的沟通&#xff0c;下面是关于以后的一些规划&#xff…

LeetCode(1)合并两个有序数组【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 88. 合并两个有序数组 1.题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合…

STM32 堆栈空间分布

参考 运行时访问__initial_sp和__heap_base 无RTOS时的情况 在以上配置的情况下&#xff0c;生成工程。在工程的startup.s文件中&#xff0c;由如下代码&#xff1a; Stack_Size EQU 0x400AREA STACK, NOINIT, READWRITE, ALIGN3 __Stack_top ; 自己添加 Stack_Mem…

完全零基础,教你创建数码配件小程序商城

现如今&#xff0c;随着数码产品的普及&#xff0c;数码配件市场也越来越火爆。如果你有兴趣进入这个行业&#xff0c;并且想要开设一家数码配件小程序商城&#xff0c;那么不要担心&#xff0c;即使你完全零基础也可以轻松实现。 首先&#xff0c;登录【乔拓云】网后台&#x…

城市内涝积水监测,万宾科技内涝预警监测系统

每一个城市的排水体系都是一个复杂的网络系统&#xff0c;需要多个部分配合协调&#xff0c;预防城市排水管网带来安全隐患&#xff0c;也因此才能在一定程度上缓解城市内涝带来的安全问题。在海绵城市建设过程中不仅要解决大部分道路硬化导致的积水无法渗透等问题&#xff0c;…

【架构】后端项目经典分层架构介绍

文章目录 前言分层架构项目实践示例项目结构 其他知识 前言 开发后端项目时&#xff0c;我们最常见的一种架构模式就是分层架构 。 所谓的分层架构&#xff0c;就是把系统自上而下分为多个不同的层&#xff0c;每一层都有特定的功能和职责&#xff0c;且只和自己的直接上层与…