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行业的佼佼者,酷开科技一直秉承着“以用户为中心”的服务理念,不断追求卓越品质,为用户提供更…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...