首页 > 编程语言 >Python基础学习day08

Python基础学习day08

时间:2023-09-10 11:31:56浏览次数:43  
标签:day08 name Python 学习 v1 字符串 print message data

常见的数据类型:

  • int,整数类型(整形)
  • bool,布尔类型
  • str,字符串类型
  • list,列表类型
  • tuple,元组类型
  • dict,字典类型
  • set,集合类型
  • float,浮点类型(浮点型)

每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型。

Python基础学习day08_整型

每种数据类型的讲解,会按照以下4个维度来进行:

  1. 定义
  2. 独有功能
  3. 公共功能
  4. 类型转换
  5. 其他

今日课程目标:掌握整形、布尔类型、字符串的必备知识。

今日课程概要:

  • 整形
  • 布尔类型
  • 字符串类型

1.整型

整型其实就是十进制整数的统称,比如:1、68、999都属于整型。他一般用于表示 年龄、序号等。

1.1 定义

number = 10
age = 99

1.2 独有功能

v1 = 5
print(bin(v1))  # 0b101
# 调用v1(int)的独有功能,获取v1的二进制有多少个位组成。
result1 = v1.bit_length()
print(result1)  # 3

v2 = 10
print(bin(10))  # 0b1010
# 调用v2(int)的独有功能,获取v2的二进制有多少个位组成。
result2 = v2.bit_length()
print(result2)  # 4

1.3 公共功能

加减乘除

v1 = 4
v2 = 8
v3 = v1 + v2

1.4 转换

在项目开发和面试题中经常会出现一些 "字符串" 和 布尔值 转换为 整型的情况。

# 布尔值转整型
n1 = int(True)  # True转换为整数 1
n2 = int(False) # False转换为整数 0

# 字符串转整型
v1 = int("186",base=10) # 把字符串看成十进制的值,然后再转换为 十进制整数,结果:v1 = 186
v2 = int("0b1001",base=2) # 把字符串看成二进制的值,然后再转换为 十进制整数,结果:v1 = 9 (0b表示二进制)
v3 = int("0o144",base=8)  # 把字符串看成八进制的值,然后转换为 十进制整数,结果:v1 = 100 (0o表示八进制)
v4 = int("0x59",base=16)  # 把字符串看成十六进制的值,然后转换为 十进制整数,结果:v1 = 89 (0x表示十六进制)

# 浮点型(小数)
v1 = int(8.7) # 8

所以,如果以后别人给你一个按 二进制、八进制、十进制、十六进制 规则存储的字符串时,可以轻松的通过int转换为十进制的整数。

1.5 其他

1.5.1 长整型

  • Python3:整型(无限制)
  • Python2:整型、长整形

在python2中跟整数相关的数据类型有两种:int(整型)、long(长整型),他们都是整数只不过能表示的值范围不同。

Python基础学习day08_字符串_02


  • int,可表示的范围:-9223372036854775808~9223372036854775807
  • long,整数值超出int范围之后自动会转换为long类型(无限制)。

在python3中去除了long只剩下:int(整型),并且 int 长度不在限制。

1.5.2 地板除

  • Py3:
v1 = 9/2 
print(v1) # 4.5
  • py2:
v1 = 9/2 
print(v1) # 4
from __future__ import division 

v1 = 9/2 
print(v1) # 4.5

2. 布尔类型

布尔值,其实就是 “真”、“假” 。

2.1 定义

data = False
alex_is_sb = True

2.2 独有功能

2.3 公共功能

v1 = True + True
print(v1) # 2

2.4 转换

在以后的项目开发中,会经常使用其他类型转换为布尔值的情景,此处只要记住一个规律即可。

整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False
其他均为True
# 练习题:查看一些变量为True还是False
v1 = bool(0)
v2 = bool(-10)
v3 = bool(10)
v4 = bool("武沛齐")
v5 = bool("")
v6 = bool(" ")
v7 = bool([]) # [] 表示空列表
v8 = bool([11,22,33]) # [11,22,33] 表示非空列表
v9 = bool({}) # {} 表示空字典
v10 = bool({"name":"武沛齐","age":18}) # {"name":"武沛齐","age":18} 表示非空字典

2.5 其他

2.5.1 做条件自动转换

如果在 if 、while 条件后面写一个值当做条件时,他会默认转换为布尔类型,然后再做条件判断。

if 0:
	print("太六了")
else:
  print(999)

if "武沛齐":
	print("你好")

if "alex":
	print("你是傻逼?")
else:
	print("你是逗比?")
while 1>9:
  pass
if 值:
  pass

while 值:
  pass

3.字符串类型

字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。

3.1 定义

v1 = "包治百病"
v2 = '包治百病'
v3 = "包'治百病"
v4 = '包"治百病'
v5 = """
吵架都是我的错,
因为大家打不过。
"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。

3.2 独有功能(18/48)

"xxxxx".功能(...)

v1 = "xxxxx"
v1.功能(...)
  1. 判断字符串是否以 XX 开头?得到一个布尔值
v1 = "叨逼叨的一天,烦死了"

# True
result = v1.startswith("叨逼叨的一天")

print(result) # 值为True
# 案例
v1 = input("请输入住址:")

if v1.startswith("北京市"):
	print("北京人口")
else:
	print("非北京人口")
  1. 判断字符串是否以 XX 结尾?得到一个布尔值
v1 = "叨逼叨的一天,烦死了"

result = v1.endswith("烦死了")

print(result) # 值为True
# 案例
address = input("请输入地址:")

if address.endswith('村'):
	print("农业户口")
else:
	print("非农户口")
  1. 判断字符串是否为十进制数?得到一个布尔值
v1 = "1238871"
result = v1.isdecimal()
print(result) # True
# 案例,两个数相加。

v1 = input("请输入值:") # ”666“
v2 = input("请输入值:") # ”999“
if v1.isdecimal() and v2.isdecimal():
	data = int(v1) + int(v2)
	print(data)
else:
	print("请正确输入数字")
v1 = "123"
print(v1.isdecimal()) # True

v2 = "①"
print(v2.isdecimal()) # False

v3 = "123"
print(v3.isdigit()) # True

v4 = "①"
print(v4.isdigit()) # True
  1. 去除字符串两边的 空格、换行符、制表符,得到一个新字符串
data = input("请输入内容:") #武沛齐,武沛齐   
print(data)
msg = " H e ll o啊,树哥 "
data = msg.strip()
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"
msg = " H e ll o啊,树哥 "
data = msg.lstrip()
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥 "
msg = " H e ll o啊,树哥 "
data = msg.rstrip()
print(data) # 将msg两边的空白去掉,得到" H e ll o啊,树哥"

补充:去除 空格、换行符、制表符。

# 案例
code = input("请输入4位验证码:") #  FB87 
data = code.strip()
if data == "FB87":
	print('验证码正确')
else:
	print("验证码错误")

再补充:去除字符串两边指定的内容

msg = "哥H e ll o啊,树哥"
data = msg.strip("哥")
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树"
msg = "哥H e ll o啊,树哥"
data = msg.lstrip("哥")
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"
msg = "哥H e ll o啊,树哥"
data = msg.rstrip("哥")
print(data) # 将msg两边的空白去掉,得到"哥H e ll o啊,树"
  1. 字符串变大写,得到一个新字符串
msg = "my name is oliver queen"
data = msg.upper()

print(msg) # my name is oliver queen
print(data) # 输出为:MY NAME IS OLIVER QUEEN
# 案例
code = input("请输入4位验证码:") #  FB88   fb88 
value = code.upper() #  FB88  
data = value.strip() # FB88

if data == "FB87":
	print('验证码正确')
else:
	print("验证码错误")
  
# 注意事项
"""
code的值"fb88 "
value的值"FB88 "
data的值"FB88"
"""
  1. 字符串变小写,得到一个新字符串
msg = "My Name Is Oliver Queen"
data = msg.lower()

print(data) # 输出为:my name is oliver queen
# 案例
code = input("请输入4位验证码:")
value = code.strip().lower()
if value == "fb87":
	print('验证码正确')
else:
	print("验证码错误")
  1. 字符串内容替换,得到一个新的字符串
data = "你是个好人,但是好人不合适我"
value = data.replace("好人","贱人")
print(data)  # "你是个好人,但是好人不合适我"
print(value) # "你是个贱人,但是贱人不合适我"
# 案例
video_file_name = "高清无码爱情动作片.mp4"

new_file_name = video_file_name.replace("mp4","avi") # "高清无码爱情动作片.avi"

final_file_name = new_file_name.replace("无码","步兵") # "高清步兵爱情动作片.avi"

print(final_file_name)
# 案例
video_file_name = "高清无码爱情动作片.mp4"

new_file_name = video_file_name.replace("mp4","avi") # "高清无码爱情动作片.avi"

final_file_name = video_file_name.replace("无码","步兵") # "高清步兵爱情动作片.mp4"

print(final_file_name)
# 案例
content = input("请输入评论信息") # alex是一个草B
content = content.replace("草","**") # alex是一个**包
content = content.replace("泥马","***") # alex是一个**包
print(content) # alex是一个**包
char_list = ["C拟吗","D比","2蛋","钢球"]

content = input("请输入评论信息")
for item in char_list:
  content = content.replace(item,"**")

print(content)
  1. 字符串切割,得到一个列表
data = "武沛齐|root|[email protected]"
result = data.split('|') # ["武沛齐","root","[email protected]"]
print(data) # "武沛齐|root|[email protected]"
print(result) # 输出 ["武沛齐","root","[email protected]"] 根据特定字符切开之后保存在列表中,方便以后的操作
# 案例:判断用户名密码是否正确
info = "武沛齐,root"   # 备注:字符串中存储了用户名和密码
user_list = info.split(',')    # 得到一个包含了2个元素的列表 [ "武沛齐" , "root" ]

# user_list[0]
# user_list[1]

user = input("请输入用户名:")
pwd = input("请输入密码:")

if user == user_list[0] and pwd == user_list[1]:
	print("登录成功")
else:
	print("用户名或密码错误")

扩展

data = "武沛齐|root|[email protected]"
v1 = data.split("|")   # ['武沛齐', 'root', '[email protected]']
print(v1)

v2 = data.split("|", 2) # ['武沛齐', 'root|[email protected]']
print(v2)

再扩展

data = "武沛齐,root,[email protected]"

v1 = data.rsplit(',')
print(v1) # ['武沛齐', 'root', '[email protected]']

v2 = data.rsplit(',',1)
print(v2) # ['武沛齐,root', '[email protected]']

应用场景:

file_path = "xxx/xxxx/xx.xx/xxx.mp4"

data_list = file_path.rsplit(".",1) # ["xxx/xxxx/xx.xx/xxx","mp4"]
data_list[0]
data_list[1]
  1. 字符串拼接,得到一个新的字符串
data_list = ["alex","是","大烧饼"]
v1 = "_".join(data_list) # alex_是_大烧饼
print(v1)
  1. 格式化字符串,得到新的字符串
name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
data = name.format("老王","护士","嫩模")
print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
name = "{}的喜欢干很多行业,例如有:{}、{} 等"
data = name.format("老王","护士","嫩模")
print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
data = name.format(name="老王",h1="护士",h2="嫩模")
print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
  1. 字符串转换为字节类型
data = "嫂子"  # unicode,字符串类型

v1 = data.encode("utf-8")  # utf-8,字节类型
v2 = data.encode("gbk")  # gbk,字节类型

print(v1)  # b'\xe5\xab\x82 \xe5\xad\x90'
print(v2)  # b'\xc9\xa9 \xd7\xd3'

s1 = v1.decode("utf-8") # 嫂子
s2 = v2.decode("gbk") # 嫂子
print(s1)
print(s2)
  1. 将字符串内容居中、居左、居右展示
v1 = "王老汉"
# data = v1.center(21, "-")
# print(data) #---------王老汉---------

# data = v1.ljust(21, "-")
# print(data) # 王老汉------------------

# data = v1.rjust(21, "-")
# print(data) # ------------------王老汉
  1. 帮助你填充0
data = "alex"
v1 = data.zfill(10)
print(v1) # 000000alex
# 应用场景:处理二进制数据
data = "101" # "00000101"
v1 = data.zfill(8)
print(v1) # "00000101"

练习题

  1. 写代码实现判断用户输入的值否以 "al"开头,如果是则输出 "是的" 否则 输出 "不是的"
  2. 写代码实现判断用户输入的值否以"Nb"结尾,如果是则输出 "是的" 否则 输出 "不是的"
  3. 将 name 变量对应的值中的 所有的"l"替换为 "p",并输出结果
  4. 写代码实现对用户输入的值判断,是否为整数,如果是则转换为整型并输出,否则直接输出"请输入数字"
  5. 对用户输入的数据使用"+"切割,判断输入的值是否都是数字?
    提示:用户输入的格式必须是以下+连接的格式,如 5+9 、alex+999
  6. 写代码实现一个整数加法计算器(两个数相加)
    需求:提示用户输入:5+9或5+9或5+9,计算出两个值的和(提示:先分割再转换为整型,再相加)
  7. 写代码实现一个整数加法计算器(两个数相加)
    需求:提示用户输入:5 +9或5+ 9或5 + 9,计算出两个值的和(提示:先分割再去除空白、再转换为整型,再相加)
  8. 补充代码实现用户认证。
    需求:提示用户输入手机号、验证码,全都验证通过之后才算登录成功(验证码大小写不敏感)
import random
code = random.randrange(1000,9999) # 生成动态验证码
msg = "欢迎登录PythonAV系统,您的验证码为:{},手机号为:{}".format(code,"15131266666")
print(msg)
# 请补充代码
  1. 补充代码实现数据拼接
data_list = []
while True:
    hobby = input("请输入你的爱好(Q/q退出):")
    if hobby.upper() == 'Q':
        break
    # 把输入的值添加到 data_list 中,如:data_list = ["小姨子","哥们的女朋友"]
    data_list.append(hobby) 
    # 将所有的爱好通过符号 "、"拼接起来并输出

3.3 公共功能

  1. 相加:字符串 + 字符串
v1 = "alex" + "大s比"
print(v1)
  1. 相乘:字符串 * 整数
data = "嫂子" * 3
print(data) # 嫂子嫂子嫂子
  1. 长度
data = "嫂子满身大汉"
value = len(data) 
print(value) # 6
  1. 获取字符串中的字符,索引
message = "来做点py交y"
#          0 1 2345 6 7
#           ... -3 -2 -1
print(message[0]) # "来"
print(message[1]) # "做"
print(message[2]) # "点"

print(message[-1]) # 呀
print(message[-2]) # 呀
print(message[-3]) # 呀

注意:字符串中是能通过索引取值,无法修改值。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建。】

message = "来做点py交y"
index = 0
while index < len(message):
	value = message[index]
    print(value)
    index += 1
message = "来做点py交y"
index = len(message) - 1
while index >=0:
    value = message[index]
    print(value)
    index -= 1
  1. 获取字符串中的子序列,切片
message = "来做点py交y"

print(message[0:2]) # "来做"
print(message[3:7]) # "py交"y
print( message[3:] ) # "py交y"
print( message[:5] ) # "来做点py"

print(message[4:-1]) # "y交y"
print(message[4:-2]) # "y交"

print( message[4:len(message)] ) # "y交y"

注意:字符串中的切片只能读取数据,无法修改数据。【字符串在内部存储时不允许对内部元素修改,想要修改只能重新创建】

message = "来做点py交y"

value = message[:3] + "Python" + message[5:]
print(value)
  1. 步长,跳着去字符串的内容
name = "生活不是电影,生活比电影苦"

print( name[ 0:5:2 ] )   # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
print( name[ :8:2 ] )    # 输出:生不电,  【区间范围的前面不写则表示起始范围为0开始】、
# 此处老师讲解时,错把 name[ 2::3 ]看成了name[ 2::2 ],更正下。(感谢 B站 放酱啊噗啊噗 同学的反馈)
# print( name[ 2::2 ] )    # 输出:不电,活电苦
# print( name[ 2::3 ] )    # 输出:不影活影

print( name[ 2::3 ] )    # 输出:不电,活电苦 【区间范围的后面不写则表示结束范围为最后】
print( name[ ::2 ] )     # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
print( name[ 8:1:-1 ] )  # 输出:活生,影电是不 【倒序】
name = "生活不是电影,生活比电影苦"

print(name[8:1:-1])  # 输出:活生,影电是不 【倒序】
print(name[-1:1:-1])  # 输出:苦影电比活生,影电是不 【倒序】

# 面试题:给你一个字符串,请将这个字符串翻转。
value = name[-1::-1]
print(value)  # 苦影电比活生,影电是不活生
  1. 循环
  • while循环
message = "来做点py交y"
index = 0
while index < len(message):
	value = message[index]
    print(value)
    index += 1
  • for循环
message = "来做点py交y"
for char in message:
    print(char)
  • range,帮助我们创建一系列的数字
range(10) # [0,1,2,3,4,5,6,7,8,9]
range(1,10) # [1,2,3,4,5,6,7,8,9]
range(1,10,2) # [1,3,5,7,9]
range(10,1,-1) # [10,9,8,7,6,5,4,3,2]
  • For + range
for i in range(10):
    print(i)
message = "来做点py交y"

for i in range(5): # [0,1,2,3,4]
    print(message[i])
message = "来做点py交y"
for i in range( len(message) ): # [0,1,2,3,4,5,6,7]
    print(message[i])

一般应用场景:

  • while,一般在做无限制(未知)循环此处时使用。
while True:
    ...
# 用户输入一个值,如果不是整数则一直输入,直到是整数了才结束。
num = 0
while True:
    data = input("请输入内容:")
    if data.isdecimal():
        num = int(data)
        break
	else:
        print("输入错误,请重新输入!")
  • for循环,一般应用在已知的循环数量的场景。
message = "来做点py交y"
for char in message:
    print(char)
for i in range(30):
    print(message[i])
  • break和continue关键字
message = "来做点py交y"
for char in message:
    if char == "p":
        continue
    print(char)

# 输出:
来
做
点
y
交
y
呀
message = "来做点py交y"
for char in message:
    if char == "p":
        break
    print(char)

# 输出:
来
做
点
for i in range(5):
    print(i)# 0 1 2 3 4
    for j in range(3):
        break
        print(j) # 0 1 2  # 0 1 2  # 0 1 2  # 0 1 2  # 0 1 2

3.4 转换

num = 999
data = str(num)
print(data) # "999"
data_list = ["alex","eric",999]
data = str(data_list)
print(data) # '["alex","eric",999]'

一般情况下,只有整型转字符串才有意义。

3.5 其他

3.5.1 字符串不可被修改

name = "武沛齐"

name[1]
name[1:2]
num_list = [11,22,33]

num_list[0]
num_list[0] = 666

总结

  1. 整型在Python2和Python3中的区别?
  2. 进制之间的转换。
  3. 其他类型转换为布尔类型时,空和0为False,其他均为True。
  4. 条件语句中可自动化转换布尔类型来做判断。
if "武沛齐":
    print(666)
else:
    print(999)
  1. 字符串中常见的独有功能。
  2. 字符串中常见的公共功能。
  3. 字符串创建之后是不可以被修改的。

作业

  1. 请用代码实现如下进制的转换。
v1 = 675          # 请将v1转换为二进制(字符串类型)。

v2 = "0b11000101" # 请将二进制v2转换为十进制(整型)

v3 = "11000101"   # 请将二进制v3转换为十进制(整型)
  1. 按要求实现

现有 v1=123 和 v2=456,请将这两个值转换为二进制,并将其二进制中的前缀 0b 去掉,然后将两个二进制拼接起来,最终再转换为整型(十进制)。

例如:

123 对应二进制为 "0b1111011" ,去除前缀0b之后的二进制为 "1111011"

456 对应二进制为 "0b111001000" ,去除前缀0b之后的二进制为 "111001000"

将两个二进制拼接起来的值为:"1111011111001000",再将此值转换为整型为:63432

  1. 按要求实现

现有 v1=123 和 v2=456,请将这两个值转换为二进制,并将其二进制中的前缀 0b 去掉,再补足为2个字节(16位),然后将两个二进制拼接起来,最终再转换为整型(十进制)。

例如:

123 对应二进制为 "0b1111011" ,去除前缀0b之后的二进制为 "1111011" ,补足16位为 "00000000 01111011"

456 对应二进制为 "0b111001000" ,去除前缀0b之后的二进制为 "111001000",,补足16位为 "00000001 11001000"

将两个二进制拼接起来的值为:"00000000 0111101100000001 11001000",再将此值转换为整型为:8061384

  1. 列举你了解的那些数据类型的值转换为布尔值为False。
  2. 看代码写结果:
if "":
    print(123)
else:
    print(456)
if 0:
    print(999)
else:
    print(666)
if "武沛齐":
    print(345)
else:
    print(110)
  1. 让用户输入一段文本,请实现将文本中的敏感词 大S逼 ,隔壁老W替换为 ***,最后并输入替换后的文本。
  2. 有变量name = "aleX leNb " 完成如下操作:
  • 移除 name 变量对应的值两边的空格,并输出处理结果
  • 判断 name 变量是否以 "al" 开头,并输出结果(用切片 或 startswith实现)
  • 判断name变量是否以"Nb"结尾,并输出结果(用切片 或 endswith实现)
  • 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
  • 将 name 变量对应的值根据 所有的"l" 分割,并输出结果
  • 将name变量对应的值根据第一个"l"分割,并输出结果
  • 将 name 变量对应的值变大写,并输出结果
  • 将 name 变量对应的值变小写,并输出结果
  1. 如何实现字符串的翻转?
  2. 有字符串s = "123a4b5c"
  • 通过对s切片形成新的字符串 "123"
  • 通过对s切片形成新的字符串 "a4b"
  • 通过对s切片形成字符串 "c"
  • 通过对s切片形成字符串 "ba2"
  1. 使用while循环实现对字符串 message = "伤情最是晚凉天,憔悴厮人不堪言" 中每个字符进行输出。
  2. 使用for循环实现对字符串 message = "伤情最是晚凉天,憔悴厮人不堪言" 中每个字符进行输出。
  3. 使用for循环和range实现对字符串 message = "伤情最是晚凉天,憔悴厮人不堪言" 中每个字符进行倒叙输出。
  4. 使用for循环实现输出倒计时效果,例如:输出内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒"。
  5. 让用户输入一段文本,请计算文本中 "浪" 出现的次数,并输入结果。
  6. 获取用户两次输入的内容,并提取其中的数字,然后实现数字的相加(转换为整型再相加):
"""
要求:
	将num1中的的所有数字找到并拼接起来:1232312
	将num1中的的所有数字找到并拼接起来:1218323
	然后将两个数字进行相加。
"""
num1 = input("请输入:") # asdfd123sf2312
num2 = input("请输入:") # a12dfd183sf23
# 请补充代码

标签:day08,name,Python,学习,v1,字符串,print,message,data
From: https://blog.51cto.com/u_15130867/7424217

相关文章

  • python实现自己的全局热键的第2种方法
    之前有过一版python实现的全局热键,但是在实际运行中发现,有时候不太灵敏,明明按下了目标热键,为什么没有反应呢?通过定位发现,有时候键盘勾子捕获不到ctrldown消息,特别是一段时间不操作电脑后容易出现这种情况,这时候ctrl键确实处于按下的状态(通过GetKeyState函数可以......
  • Markdown学习
    Markdown学习二级标题三级标题四级标题字体Hello,World!Hello,World!Hello,World!Hello,World!引用选择狂神说java,走向人生巅峰分割线图片超链接点击跳转到狂神博客列表Adc\51表格名字性别生日张三男2000.12.15代码ddda......
  • Python对列表去重的4种方法
    开发中对数组、列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序,后面两种方法可以保持原来的顺序。下面的代码都在Python3下测试通过,Python2下请自行测试1.使用set的特型,python的set和其他语言类似,是一个无序不重复元素集1234orgList......
  • Python日志库Loguru教程
    1.为什么选用logurupython自带的logging模块,需要完成复杂的配置才能很好的使用,基本生产环境都需要进行二次包装。loguru专门梳理了这方面的问题,可以通过简单直接的配置完成你的需求。简单的例子:fromloguruimportloggerlogger.info("hellofromloguru")输出到标准输出......
  • 【Python基础】字符串常用方法
    replace()方法replace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。str="ThisisATest"print(str.replace("is","was"))#ThwaswasATest"print(str.replace("is","was",1))#Thwas......
  • python爬虫练习2-百度热榜
    importrequestsfromlxmlimportetreeurl='https://top.baidu.com/board?tab=realtime'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/116.0.0.0Safari/537.36&......
  • Python开发实例(十五)电子邮件自动化:编写一个程序,自动发送电子邮件或处理收件箱
    在这个实例中,我们将使用Python编写一个程序,实现自动发送电子邮件的功能。我们将使用Python的smtplib库来发送电子邮件。首先,请确保你已经安装了smtplib库。如果没有安装,可以通过以下命令来安装:pipinstallsecure-smtplib下面是一个自动发送电子邮件的Python程序:importsmtplibfro......
  • Python学习笔记-Python判断语句
    布尔类型和比较运算符布尔类型进行判断,只有2个结果:是否程序中,如何描述:是或否?使用:布尔类型。Python中常用的6种值(数据)的类型类型描述说明数字(Number)支持整数(int)浮点数(float)复数(complex)布尔(bool)整数(int),如10、-10浮点数(float),如13.14、-13.14复数(complex),如4+3j,以j结尾表示复数布尔(bool)......
  • 新人如何快速学会Python
    要快速学会Python,首先要了解Python的基本语法和数据类型。Python是一种解释型语言,具有简单易学、高效开发、库丰富等特点。首先,需要掌握Python的基本语法,例如变量、数据类型、控制流语句、函数等。可以通过阅读官方文档、在线教程、书籍等方式进行学习。同时,可以尝试编写简单的Pyt......
  • 深度学习基础之梯度下降
    1.引言梯度下降是一种用于最小化(或最大化)损失函数的优化算法。它是机器学习和深度学习中的一个关键概念,通常用于调整学习算法中的参数。梯度下降背后的核心思想是迭代调整参数以最小化损失函数。它的工作原理是计算损失函数相对于每个参数的梯度,并在减少损失函数的方向上更新参数......