前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习笔记

Python学习笔记

原创
作者头像
用户11062199
发布2024-05-30 19:49:32
780
发布2024-05-30 19:49:32

List(列表)Tuple(元组)Set(集合)LambdaSocket

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)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

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中的字符串不能改变。
代码语言:javascript
复制
 import requests
 url="www.baidu.com"
 port="8080"

www.baidu.com baidu

List(列表)

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

img
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
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() 而不是 { },因为 { } 是用来创建一个空字典。1hello

[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

Lambda

代码语言:javascript
复制
 # 一个简单的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

服务器端

代码语言:javascript
复制
 ​
 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()

客户端

代码语言:javascript
复制
 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()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Lambda
  • Socket
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档