Python学习笔记

简介: Python支持多变量赋值,如`a=b=c=1`和`a, b, c = 1, 2, "runoob"`。数据类型分为不可变(数字、字符串、元组)和可变(列表、字典、集合)。示例中展示了变量赋值、类型检查(`isinstance()`与`type()`的区别)以及运算操作,包括除法、乘方。字符串处理涉及索引、切片、连接和转义字符。列表、元组和集合的创建、访问和操作也进行了演示,例如列表的索引、切片、连接、重复和集合的运算。此外,还介绍了字典的使用,以及`lambda`函数和socket编程的基本概念。

[TOC]

Python允许你同时为多个变量赋值。例如:a=b=c=1 a, b, c = 1, 2, "runoob"

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。
    >>> 2 / 4 # 除法,得到一个浮点数0.5
    >>> 2 // 4 # 除法,得到一个整数0
    >>> 2 ** 5 # 乘方32

==str = 'Runoob'==
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str 2) # 输出字符串两次,也可以写成 print (2 str)
print (str + "TEST") # 连接字符串

>>> print('Ru\noob')
Ru
oob
>>>print(r'Ru\n**oob')
Ru\noob

标题一

  • 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
  • 2、字符串可以用+运算符连接在一起,用*运算符重复。

  • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

  • 4、Python中的字符串不能改变。

and or not

#include<bits/stdc++.h>
using namespace std;
int main()
{
   
   

}
import requests
url="www.baidu.com"
port="8080"

www.baidu.com
baidu

List(列表)

list=['ads',241,1.2,'asdf']

img

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist 2) # 输出两次列表
*print
(list + tinylist) # 连接列表

['abcd', 786, 2.23, 'runoob', 70.2]
abcd
[786, 2.23]
[2.23, 'runoob', 70.2]
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']

img

# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords=inputWords[-1::-1]

Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0] [1]
'b'

Tuple(元组)

tuple=('asdf',12)其实,可以把字符串看作一种特殊的元组。

tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

>>> tup1 = (50)
>>> type(tup1) # 不加逗号,类型为整型
<class 'int'>

>>> tup1 = (50,)
>>> type(tup1) # 加上逗号,类型为元组
<class 'tuple'>

Set(集合)

Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。

另外,也可以使用 set() 函数创建集合。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。[^1]hello

[^1]: hello world!
baga!

创建格式:

# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

百度一下

print(a - b) # a 和 b 的差集

print(a | b) # a 和 b 的并集print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素=>{'z', 'b', 'm', 'r', 'l', 'd'}

x = str("s1") # x 输出结果为 's1'
y = str(2) # y 输出结果为 '2'
z = str(3.0) # z 输出结果为 '3.0'

!/usr/bin/python3

a = 10
b = 20
list = [1, 2, 3, 4, 5 ]

if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")

if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")

修改变量 a 的值

a = 2
if ( a in list ):
print ("3 - 变量 a 在给定的列表中 list 中")
else:
print ("3 - 变量 a 不在给定的列表中 list 中")

and>or

round(113.562,2)=113.56

从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

var1 = 'Hello World!' print ("已更新字符串 : ", var1[:6] + 'Runoob!') Hello Runoob!

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

del删除

==关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下:==

斐波纳契数列 # 两个元素的总和确定了下一个数

a, b = 0, 1

while b < 1000:

​ print(b, end=',')

a, b = b, a+b

[^1]:

Lambda

# 一个简单的lambda函数,计算两个数的和
add = lambda x, y: x + y
print(add(3, 4))  # 输出: 7

# 使用lambda函数作为列表排序的key
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
print(pairs)  # 输出: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]字典序

# 在列表推导式中使用lambda函数
cubes = [lambda x: x**3 for x in range(5)]
print(cubes)  # 输出: [0, 1, 8, 27, 64]

Socket

服务器端

import socket

# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()
port = 10000

# 绑定套接字到端口
server_socket.bind((host, port))

# 设置最大连接数,超过后排队
server_socket.listen(5)

while True:
    # 建立客户端连接
    connection, client_address = server_socket.accept()

    try:
        # 接收数据
        print(f"连接来自 {client_address}")
        data = connection.recv(1024)

        if not data:
            # 没有数据,退出循环
            break

        # 接收到数据后,发送响应
        connection.sendall(b'Thank you for connecting')

    finally:
        # 关闭连接
        connection.close()

客户端

import socket

# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()
port = 10000

# 连接到服务器
client_socket.connect((host, port))

try:
    # 向服务器发送数据
    message = 'Hello, World!'
    client_socket.sendall(message.encode())

    # 接收服务器的响应数据
    data = client_socket.recv(1024)
    print(data.decode())

finally:
    # 关闭套接字
    client_socket.close()
目录
相关文章
|
1月前
|
存储 C语言 Python
【Python】学习笔记day3
【Python】学习笔记day3
35 1
|
12天前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
1月前
|
分布式计算 Python
Python函数式编程学习笔记
高阶函数是能接收另一个函数作为参数的函数,如Python的map()、reduce()和filter()。map()将传入的函数应用到序列每个元素并返回迭代器,如将整数列表转换为字符串列表。reduce()对序列进行累积计算,例如求和。filter()根据给定函数返回的真值保留或丢弃序列元素,常用于筛选。sorted()函数支持自定义排序,如按绝对值或ASCII值排序。此外,还包括返回函数、匿名函数(lambda)、装饰器(用于动态增强函数功能)和偏函数(partial),用于固定函数部分参数,简化调用。
27 1
|
1月前
|
前端开发 安全 JavaScript
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
|
9天前
|
Python
GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Python学习手册》中文第四版的翻译在某些章节(可能难度较大?)措辞可能前后矛盾。当知识点提炼之后就能够很快的找到一些难以理解的概念的上下文,方便吃透这些难点。
GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Python学习手册》中文第四版的翻译在某些章节(可能难度较大?)措辞可能前后矛盾。当知识点提炼之后就能够很快的找到一些难以理解的概念的上下文,方便吃透这些难点。
|
12天前
|
Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-2
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
12天前
|
数据可视化 开发者 Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-1
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
12天前
|
存储 API C语言
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-2
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
1月前
|
Python
Python学习 笔记(五) 判断语句
Python学习 笔记(五) 判断语句
32 3