python基本语法
变量无需声明
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
len=800 #整型变量
long=width=23.87 #浮点型变量,可为多个变量赋值
name='July' #字符串
print(len)
print(long)
print(width)
print(name)
输入(input)
input("\n\n按enter键后退出。")
\n\n 在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。
输出(print)
print默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""。
e.g:
m = -5
y = -2
# 换行输出
print(m)
print(y)
print(m+y)
# 不换行输出
print(m, end=" ")
print(y, end=" ")
print(m+y,end=" ")
以上例子的结果:
-5
-2
-7
-5 -2 -7
进程已结束,退出代码0
保留字
python保留字,即关键字,跟C、C++那样有保留的关键字。
我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字。e.g:False,and,as,assert,break,class,def,del,elif,except,from,in,import等等。感兴趣可以去网上查阅。
注释
1.单行注释以#开头,e.g:
#我的第一个注释呀
print("hi") #第二个注释哟
2.多行注释可用多个#号,或'''或"""
e.g:
#你好,这是一个注释
#不好,这是第二个注释'''
我是第三个注释
它是第四个注释
'''"""
我是第五个哦~
我才是老六!
七七来也——
"""
print("老八")
数字类型
python中数字有四种类型:整数(int)、布尔型(bool)、浮点数(float)和复数(complex)。
下面是一些对应的例子:
int(整数):1,2,88,10000等。 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
bool(布尔):True,False。(bool是int的子类,True和False可以和数字相加)
float(浮点数):2.0,3.1415,6E-3等。
complex(复数):1.3+4j,2+7j等。
数值运算
5 + 4 # 加法
结果:9
6.3 - 2 # 减法
结果:4.3
3 * 8 # 乘法
结果:24
2 / 4 # 除法,得到一个浮点数
结果:0.5
2 // 4 # 除法,得到一个整数
结果:0
17 % 3 # 取余
结果:2
2 ** 4 # 乘方
结果:16
字符串
1.Python 中单引号 ' 和双引号 " 使用完全相同。
2.使用三引号(''' 或 """)可以指定一个多行字符串。e.g:
name='Tom'
sentence="I love you"
paragtaph="""鲸落海底,哺万生众物"""
3.转义符:\(反斜杠)可以用来转义,但使用 r 可以让反斜杠不发生转义。 如 r"today is \n Friday" 则 \n 会显示,并不是换行。
4.字符串可以用 + 运算符连接在一起,用 * 运算符重复。
5.Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
6.Python 中的字符串不能改变。
7.Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
下面是一些例子:
a='0123456789'
print(a) # 输出字符串
print(a[0:-1]) # 输出第一个到倒数第二个的所有字符
print(a[0]) # 输出字符串第一个字符
print(a[2:5]) # 输出从第三个开始到第五个的字符
print(a[2:]) # 输出从第三个开始后的所有字符
print(a[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(a*2) # 输出字符串两次
print(a + '你好鸭~') # 连接字符串
print('hello\ngirl!') # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nboy!') #在字符串前面添加一个 r,表示原始字符串,不会发生转义。r指raw,即raw thing,会自动将反斜杠\转义
以上例子输出:
0123456789
012345678
0
234
23456789
13
01234567890123456789
0123456789你好鸭~
hello
girl!
hello\nboy!
进程已结束,退出代码0
行与缩进
python是使用缩进来表示代码块,不需要使用大括号 {} 。
同一个代码块的语句必须包含相同的缩进空格数:
if True:print ("happy")
else:print ("upset")
这样缩进数的空格数不相同,就错了:
if True:
print ("you are beautiful")
print ("you are handsome")
else:
print ("terrible")
print ("sad") # 缩进空格数不一,运行错误
多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句。e.g:
str=str_in+\str_out+\str_on
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \。e.g:
str=['str_in','str_out','str_on','str_up','str_of']
列表(list)
List(列表) 是 Python 中使用最频繁的数据类型。
它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
列表截取的语法格式:变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
e.g:
list = [ 'abcdef', 123 , 6.73, 'tmd', 7.0 ]
slist = [985, 'nb']
list[0]='abc' #列表中的元素是可改变的
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (slist * 2) # 输出两次列表
print (list + slist) # 连接列表
以上例子结果为:
['abc', 123, 6.73, 'tmd', 7.0]
abc
[123, 6.73]
[6.73, 'tmd', 7.0]
[985, 'nb', 985, 'nb']
['abc', 123, 6.73, 'tmd', 7.0, 985, 'nb']
进程已结束,退出代码0
元组(tuple)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也可以不相同:
tuple = [ 'abcdef', 123 , 6.73, 'tmd', 7.0 ]
stuple = [985, 'nb']
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出从第二个元素开始到第三个元素
print (tuple[2:]) # 输出从第三个元素开始的所有元素
print (stuple * 2) # 输出两次元组
print (tuple + stuple) # 连接元组
以上例子的结果:
['abcdef', 123, 6.73, 'tmd', 7.0]
abcdef
[123, 6.73]
[6.73, 'tmd', 7.0]
[985, 'nb', 985, 'nb']
['abcdef', 123, 6.73, 'tmd', 7.0, 985, 'nb']
进程已结束,退出代码0
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
集合(set)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。e.g:
relax = {'me', 'he', 'her','you'}
print(relax) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'me' in relax :print('在集合中')
else :print('不在集合中')# set可以进行集合运算
a = set('abracasadabra')
b = set('alacwqazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
以上例子的结果:
{'he', 'her', 'me', 'you'}
在集合中
{'r', 's', 'a', 'd', 'c', 'b'}
{'b', 'd', 'r', 's'}
{'l', 'r', 'w', 's', 'a', 'd', 'c', 'z', 'q', 'b', 'm'}
{'a', 'c'}
{'l', 'q', 'b', 'r', 'w', 's', 'd', 'z', 'm'}
进程已结束,退出代码0
字典(dictionary)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。e.g:
dict={}
dict['one']="1-星座运势"
dict[2] = "2-水瓶座是恋爱脑"
sdict={'name':'Amy','old':12,'home':'Beijing'}
print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (sdict) # 输出完整的字典
print (sdict.keys()) # 输出所有键
print (sdict.values()) # 输出所有值
以上例子的结果:
1-星座运势
2-水瓶座是恋爱脑
{'name': 'Amy', 'old': 12, 'home': 'Beijing'}
dict_keys(['name', 'old', 'home'])
dict_values(['Amy', 12, 'Beijing'])
进程已结束,退出代码0
bytes 类型
在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。
与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。
创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀:
此外,也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码:
x = bytes("hello", encoding="utf-8")
与字符串类型类似,bytes 类型也支持许多操作和方法,如切片、拼接、查找、替换等等。同时,由于 bytes 类型是不可变的,因此在进行修改操作时需要创建一个新的 bytes 对象。e.g:
x = b"hello"
y = x[1:3] # 切片操作,得到 b"el"
z = x + b"world" # 拼接操作,得到 b"helloworld"
bytes 类型中的元素是整数值,因此在进行比较操作时需要使用相应的整数值。e.g:
x = b"hello"
if x[0] == ord("h"): #ord() 函数用于将字符转换为相应的整数值print("The first element is 'h'")
同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割。e.g:
import sys;x='abcd';sys.stdout.write(x+'\n')
以上输出结果为:
abcd
import 与 from...import
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
#导入 sys 模块
import sys
print('Python import mode')
print ('命令行参数为:')
for i in sys.argv:print (i)
print ('\n python 路径为',sys.path)
#导入 sys 模块的 argv,path 成员
from sys import argv,path # 导入特定的成员
print('python from import')
print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path
欢迎一起学习~
相关文章:
python基本语法
变量无需声明 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 len800 #整型变…...
app逆向-⽹络请求库rxjava2
文章目录 一、前言二、安装三、GET请求实现四、POST请求实现 一、前言 RxJava 2 是一个流行的 Java 库,用于使用可观察序列组合异步和基于事件的程序。它是原始 RxJava 库的重新实现,旨在更高效并且更适合于 Java 8 及更高版本。 RxJava 2 的主要特性包…...
Spring Boot 笔记 007 创建接口_登录
1.1 登录接口需求 1.2 JWT令牌 1.2.1 JWT原理 1.2.2 引入JWT坐标 1.2.3 单元测试 1.2.3.1 引入springboot单元测试坐标 1.2.3.2 在单元测试文件夹中创建测试类 1.2.3.3 运行测试类中的生成和解析方法 package com.geji;import com.auth0.jwt.JWT; import com.auth0.jwt.JWTV…...
java数据结构与算法刷题-----LeetCode594. 最长和谐子序列
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 子序列要尽可能长,并且最大值和最小值之间的差&#…...
数据分析基础之《pandas(6)—高级处理》
一、缺失值处理 1、如何处理nan 两种思路: (1)如果样本量很大,可以删除含有缺失值的样本 (2)如果要珍惜每一个样本,可以替换/插补(计算平均值或中位数) 2、判断数据是否…...
IOS破解软件安装教程
对于很多iOS用户而言,获取软件的途径显得较为单一,必须通过App Store进行下载安装。 这样的限制,时常让人羡慕安卓系统那些自由下载各类版本软件的便捷。 心中不禁生出疑问:难道iOS世界里,就不存在所谓的“破解版”软件…...
[缓存] - 1.缓存共性问题
1. 缓存的作用 为什么需要缓存呢?缓存主要解决两个问题,一个是提高应用程序的性能,降低请求响应的延时;一个是提高应用程序的并发性。 1.1 高并发 一般来说, 如果 10Wqps,或者20Wqps ,可使用分布…...
Python爬虫——解析库安装(1)
目录 1.lxml安装2.Beautiful Soup安装3.pyquery 的安装 我创建了一个社区,欢迎大家一起学习交流。社区名称:Spider学习交流 注:该系列教程已经默认用户安装了Pycharm和Anaconda,未安装的可以参考我之前的博客有将如何安装。同时默…...
中科大计网学习记录笔记(十一):CDN
前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…...
[缓存] - 2.分布式缓存重磅中间件 Redis
1. 高性能 尽量使用短key 不要存过大的数据 避免使用keys *:使用SCAN,来代替 在存到Redis之前压缩数据 设置 key 有效期 选择回收策略(maxmemory-policy) 减少不必要的连接 限制redis的内存大小(防止swap,OOM) slowLog …...
1191. 家谱树(拓扑排序,模板题)
活动 - AcWing 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。 给出每个人的孩子的信息。 输出一个序列,使得每个人的孩子都比那个人后列出。 输入格式 第 11 行一个整数 n,表示家族的人数; 接下来 …...
CSS之BFC
BFC概念 BFC(Block Formatting Context)即块级格式化上下文,是Web页面的可视CSS渲染的一部分。它是一个独立的渲染区域,让其中的元素在布局上与外部的元素互不影响。简单来说,BFC提供了一个环境,允许内部的…...
2024 年合并 PDF 文件的免费 PDF 合并软件榜单
合并 PDF 是当今人们寻找的最重要的功能之一。在本文中,您将了解前五名的 PDF 合并软件以及详细的介绍,以便您选择最佳的。如果您想将所有重要信息都放在一个文件中,而不是在不同的文件中查找,那么合并 PDF 文件是必要的。通过这种…...
Python教程56:海龟画图turtle画kitty猫
---------------turtle源码集合--------------- Python教程91:关于海龟画图,Turtle模块需要学习的知识点 Python教程51:海龟画图turtle画(三角形、正方形、五边形、六边形、圆、同心圆、边切圆,五角星,椭…...
c入门第十篇——指针入门
一句话来说: 指针就是存储了内存地址值的变量。 在前面讨论传值和传址的时候,我们就已经开始使用了指针来传递地址。 在正式介绍指针之前,我们先来简单了解一下内存。内存可以简单的理解为一排连续的房子的街道,每个房子都有自己的地址&#…...
pwn学习笔记(3)ret2syscall
pwn学习笔记(3) ROP原理: ROP(Return Oriented Programming)返回导向编程,主要思想是通过在程序中已有的小片段(gadgets)来改变某些寄存器或者变量的值,从而控制程序的执行流程。 栈溢出–…...
React18原理: 生命周期中特别注意事项
概述 生命周期就是一个组件从诞生到销毁的全过程(包含错误捕获,这里暂且不聊这个)react 在组件的生命周期中注册了一系列的钩子函数支持开发者在其中嵌入代码,并在适当的时机运行生命周期本质上就是组件中的钩子函数,主要有三个主要的钩子 挂…...
【C语言】Linux内核bind系统调用代码
一、Linux 4.9内核bind系统调用代码注释 int __sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen) {struct socket *sock; // 定义socket对象的指针struct sockaddr_storage address; // 用于存储从用户空间复制过来的地址int err…...
Ubuntu下Anaconda+PyCharm搭建PyTorch环境
这里主要介绍在condapytorch都正确安装的前提下,如何通过pycharm建立开发环境; Ubuntu下AnacondaPyCharm搭建PyTorch环境 系统环境:Ubuntu22.04 conda: conda 23.11.0 pycharm:如下 condapytorch的安装教程介绍,请点击这里&…...
酷开科技荣获“消费者服务之星”称号后的未来展望
恭喜酷开科技荣获2023年第四季度黑猫平台“消费者服务之星”称号!这是对酷开科技长期以来坚持用户至上、用心服务的肯定和认可。作为OTT行业的佼佼者,酷开科技一直秉承着“以用户为中心”的服务理念,不断追求卓越品质,为用户提供更…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
