Python学习笔记(二)(字符串)

文章目录

  • 编写简单的程序
    • 一、标识符 (Identifiers)及关键字
      • 命名规则:
      • 命名惯例:
      • 关键字
    • 二、变量与赋值 (Variables & Assignment)
      • 变量定义:
      • 多重赋值:
      • 变量交换:(很方便哟)
    • 三、输入与输出 (Input & Output)
      • 输入:
      • 输出:
    • 四、数值 (Numbers)
      • 数值类型:
      • 数值运算:
    • 五、字符串 (Strings)
      • 字符串定义:
      • 字符串操作:
      • 字符串格式化:
      • 常用字符串函数
        • 1. 基本操作函数
      • 2. 判断类函数
      • 3. 分割和连接
      • 4. 格式化函数
    • 字符串应用实例
      • 1. 数据清洗
      • 2. 密码强度检查
      • 3. 文本分析
      • 4. 字符串加密
      • 5. URL处理
    • 高级字符串操作
      • 1. 正则表达式 (re模块)
      • 2. 字符串模板 (string.Template)
      • 3. 字符串对齐
    • 类型转换
    • 资源库

编写简单的程序

一、标识符 (Identifiers)及关键字

标识符是用于标识变量、函数、类、模块等对象的名字。

命名规则:

  1. 由字母、数字和下划线 _ 组成
  2. 不能以数字开头
  3. 区分大小写
  4. 不能是 Python 关键字(如 if, for, while 等)

命名惯例:

  • 变量名:小写字母,单词间用下划线 _ 连接(如 student_name
  • 常量名:全大写字母(如 MAX_VALUE
  • 类名:首字母大写的驼峰式(如 StudentInfo
  • 函数名:小写字母,单词间用下划线(如 calculate_average

关键字

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
注意:
“False”,“None”,“True”首字母都需要大写

Python 关键字详解

二、变量与赋值 (Variables & Assignment)

变量定义:

Python中变量在访问前,必须先绑定某个对象,即赋值,否则会报错。

x = 10              # 整数
name = "Alice"      # 字符串
is_valid = True     # 布尔值

多重赋值:

a, b, c = 1, 2, 3       # 同时赋值多个变量
x = y = z = 0           # 多个变量赋相同值

变量交换:(很方便哟)

a, b = b, a     # 交换两个变量的值

注意:

  • 使用换行符分隔,一般一行一条语句
  • 从第一列开始,前面不能有空格,否则会出现语法错误
  • “#”后为注释语句
a = 100
b = "21"
a + bTypeError: unsupported operand type(s) for +: 'int' and 'str'
  • Python是一种强类型语言,只支持该类型允许的运算操作
  • a 指向整数类型对象,b指向字符串类型对象,整数类型数据和字符串类型数据不能接相加,即字符串类型数据不能自动转换为整数类型数据。

三、输入与输出 (Input & Output)

输入:

name = input("请输入你的名字:")        # 获取字符串输入
age = int(input("请输入你的年龄:"))    # 获取整数输入

输出:

print("Hello World")                    # 基本输出
print("Name:", name, "Age:", age)       # 多个参数
print(f"Name: {name}, Age: {age}")      # f-string (Python 3.6+)

注意:

  • input()函数语句只能得到文本(字符串)
  • eval()函数语句可以得到数字(输入“ABC”等无法转化为数字进行运算,会报错……)
  • Python中存在强制转换 int(),float()
  • sep:用来设定以什么字符间隔输出对象,默认为空格
  • end:用来设定以什么字符作为输出对象的结尾,默认换行符“\n”,也可以是其他字符

Python中的eval()函数详解

print('2025','5','5',sep='/')
print("the answer is ",end="") #使用end="",输出字符串不会换行
print(3+4)

运行结果:

2025/5/5
the answer is 7

四、数值 (Numbers)

数值类型:

  1. 整数 (int)10, -5, 0
  2. 浮点数 (float)3.14, -0.001, 2.0
  3. 复数 (complex)1+2j

数值运算:

# 基本运算
a = 10 + 3    # 加
b = 10 - 3    # 减
c = 10 * 3    # 乘
d = 10 / 3    # 除(返回浮点数)
e = 10 // 3   # 整除
f = 10 % 3    # 取余
g = 10 ** 3   # 幂运算# 增强赋值
x += 1        # 等价于 x = x + 1

Python中的数值运算函数及math库详解

五、字符串 (Strings)

字符串定义:

s1 = '单引号字符串'
s2 = "双引号字符串"
s3 = """多行
字符串"""

字符串操作:

# 连接
full_name = first_name + " " + last_name# 重复
line = "-" * 20# 索引
first_char = s[0]        # 第一个字符
last_char = s[-1]        # 最后一个字符# 切片
sub = s[2:5]            # 第3到第5个字符
every_second = s[::2]   # 每隔一个字符# 常用方法
s.upper()       # 转为大写
s.lower()       # 转为小写
s.strip()       # 去除两端空白
s.split(",")    # 按分隔符分割
s.replace("a", "b")  # 替换字符

字符串格式化:

# 传统方式
"Name: %s, Age: %d" % ("Alice", 20)# str.format()
"Name: {}, Age: {}".format("Alice", 20)# f-string (Python 3.6+)
f"Name: {name}, Age: {age}"

常用字符串函数

1. 基本操作函数
# 长度计算
s = "Hello"
len(s)  # 返回5# 大小写转换
s.upper()  # "HELLO"
s.lower()  # "hello"
s.capitalize()  # "Hello" 将字符串的首字母大写
s.title()  # "Hello" (对于多单词字符串会每个单词首字母大写)# 查找和替换
s.find('e')  # 1 (返回首次出现的索引,找不到返回-1)
s.rfind('l') # 3 返回该字符串在字符串s中最后的位置,不存在返回 -1 
s.index('e')  # 1 (类似find 但找不到会抛出异常:substring not found)
s.rindex('i') # 3 返回该字符串在字符串s中最后的位置
s.count('l') # 2 返回一个字符串在另一个字符串中出现的次数,不存在则结果为 0
s.replace('l', 'L')  # "HeLLo"# 去除空白字符 (不修改原字符串)
"  hello  ".strip()  # "hello" 移除字符串 开头,结尾 的指定字符。默认移除空白字符(包括空格、制表符 \t、换行符 \n 等)。
"  hello  ".lstrip()  # "hello  "仅移除字符串 开头 的指定字符。
"  hello  ".rstrip()  # "  hello"仅移除字符串 结尾 的指定字符。

补充链接:
Python中的strip()
Python中字符串分隔与连接函数

2. 判断类函数

s.isalpha()  # 是否全是字母
s.isdigit()  # 是否全是数字
s.isalnum()  # 是否字母或数字
s.isspace()  # 是否全是空白字符
s.startswith('He')  # True
s.endswith('lo')  # True

3. 分割和连接

# 分割
"a,b,c".split(',')  # ['a', 'b', 'c']
"a b c".split()  # ['a', 'b', 'c'] (默认按空白字符分割)
"a\nb\nc".splitlines()  # ['a', 'b', 'c']# 连接
'-'.join(['a', 'b', 'c'])  # "a-b-c"

4. 格式化函数

# 旧式格式化
"Hello, %s!" % "world"  # "Hello, world!"# str.format()
"Hello, {}!".format("world")  # "Hello, world!"# f-string (Python 3.6+)
name = "world"
f"Hello, {name}!"  # "Hello, world!"

字符串应用实例

1. 数据清洗

# 清理用户输入
user_input = "  Some User Input  "
cleaned = user_input.strip().lower()
print(cleaned)  # "some user input"

2. 密码强度检查

def check_password(password):if len(password) < 8:return "密码太短"if not any(c.isupper() for c in password):return "需要至少一个大写字母"if not any(c.islower() for c in password):return "需要至少一个小写字母"if not any(c.isdigit() for c in password):return "需要至少一个数字"return "密码强度足够"

3. 文本分析

text = "Python is an amazing programming language. Python is versatile."# 统计单词出现次数
words = text.lower().split()
word_count = {}
for word in words:word = word.strip('.,!?')  # 去除标点word_count[word] = word_count.get(word, 0) + 1print(word_count)  # {'python': 2, 'is': 2, 'an': 1, ...}

4. 字符串加密

# 简单的凯撒密码
def caesar_cipher(text, shift):result = ""for char in text:if char.isupper():result += chr((ord(char) + shift - 65) % 26 + 65)elif char.islower():result += chr((ord(char) + shift - 97) % 26 + 97)else:result += charreturn resultencrypted = caesar_cipher("Hello, World!", 3)
print(encrypted)  # "Khoor, Zruog!"

5. URL处理

# 解析查询参数
url = "https://example.com/search?q=python&page=2"def parse_query(url):query = url.split('?', 1)[1]params = query.split('&')return {p.split('=')[0]: p.split('=')[1] for p in params}print(parse_query(url))  # {'q': 'python', 'page': '2'}

高级字符串操作

1. 正则表达式 (re模块)

import re# 验证电子邮件格式
def is_valid_email(email):pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'return re.match(pattern, email) is not Noneprint(is_valid_email("test@example.com"))  # True

2. 字符串模板 (string.Template)

from string import Templatet = Template('Hello, $name!')
print(t.substitute(name='World'))  # "Hello, World!"

3. 字符串对齐

s = "Python"
s.ljust(10)  # 'Python    '
s.rjust(10)  # '    Python'
s.center(10) # '  Python  '

类型转换

Python 类型转换详解

资源库

Python Turtle 入门绘图库
🐳 🐋 🐬

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hydra Columnar:一个开源的PostgreSQL列式存储引擎

Hydra Columnar 是一个 PostgreSQL 列式存储插件&#xff0c;专为分析型&#xff08;OLAP&#xff09;工作负载设计&#xff0c;旨在提升大规模分析查询和批量更新的效率。 Hydra Columnar 以扩展插件的方式提供&#xff0c;主要特点包括&#xff1a; 采用列式存储&#xff0c…

es的告警信息

Elasticsearch&#xff08;ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;在运行过程中可能会产生多种告警信息&#xff0c;以提示用户系统中存在的潜在问题或异常情况。以下是一些常见的 ES 告警信息及其含义和处理方法&#xff1a; 集群健康状态告警 信息示例…

健康与好身体笔记

文章目录 保证睡眠饭后百步走&#xff0c;活到九十九补充钙质一副好肠胃肚子咕咕叫 健康和工作的取舍 以前对健康没概念&#xff0c;但是随着年龄增长&#xff0c;健康问题凸显出来。 持续维护该文档&#xff0c;健康是个永恒的话题。 保证睡眠 一是心态要好&#xff0c;沾枕…

vue实现在线进制转换

vue实现在线进制转换 主要功能包括&#xff1a; 1.支持2-36进制之间的转换。 2.支持整数和浮点数的转换。 3.输入验证&#xff08;虽然可能存在不严格的情况&#xff09;。 4.错误提示。 5.结果展示&#xff0c;包括大写字母。 6.用户友好的界面&#xff0c;包括下拉菜单、输…

智体知识库:poplang编程语言是什么?

问&#xff1a;poplang语言是什么 Poplang 语言简介 Poplang&#xff08;OPCode-Oriented Programming Language&#xff09;是一种面向操作码&#xff08;Opcode&#xff09;的轻量级编程语言&#xff0c;主要用于智体&#xff08;Agent&#xff09;系统中的自动化任务处理、…

二分查找5:852. 山脉数组的峰顶索引

链接&#xff1a;852. 山脉数组的峰顶索引 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 事实证明&#xff0c;二分查找不局限于有序数组&#xff0c;非有序的数组也同样适用 二分查找主要思想在于二段性&#xff0c;即将数组分为两段。本体就可以将数组分为ar…

下列软件包有未满足的依赖关系: python3-catkin-pkg : 冲突: catkin 但是 0.8.10-

下列软件包有未满足的依赖关系: python3-catkin-pkg : 冲突: catkin 但是 0.8.10- 解决&#xff1a; 1. 确认当前的包状态 首先&#xff0c;运行以下命令来查看当前安装的catkin和python3-catkin-pkg版本&#xff0c;以及它们之间的依赖关系&#xff1a; dpkg -l | grep ca…

深度学习:AI 大模型时代的智能引擎

当 Deepspeek 以逼真到难辨真假的语音合成和视频生成技术横空出世&#xff0c;瞬间引发了全球对 AI 伦理与技术边界的激烈讨论。从伪造名人演讲、制造虚假新闻&#xff0c;到影视行业的特效革新&#xff0c;这项技术以惊人的速度渗透进大众视野。但在 Deepspeek 强大功能的背后…

医学分割新标杆!双路径PGM-UNet:CNN+Mamba实现病灶毫厘级捕捉

一、引言&#xff1a;医学图像分割的挑战与机遇 医学图像分割是辅助疾病诊断和治疗规划的关键技术&#xff0c;但传统方法常受限于复杂病理特征和微小结构。现有深度学习模型&#xff08;如CNN和Transformer&#xff09;虽各有优势&#xff0c;但CNN难以建模长距离依赖&…

CV - 目标检测

物体检测 目标检测和图片分类的区别&#xff1a; 图像分类&#xff08;Image Classification&#xff09; 目的&#xff1a;图像分类的目的是识别出图像中主要物体的类别。它试图回答“图像是什么&#xff1f;”的问题。 输出&#xff1a;通常输出是一个标签或一组概率值&am…

高并发秒杀系统设计:关键技术解析与典型陷阱规避

电商、在线票务等众多互联网业务场景中&#xff0c;高并发秒杀活动屡见不鲜。这类活动往往在短时间内会涌入海量的用户请求&#xff0c;对系统架构的性能、稳定性和可用性提出了极高的挑战。曾经&#xff0c;高并发秒杀架构设计让许多开发者望而生畏&#xff0c;然而&#xff0…

蓝桥杯--结束

冲刺题单 基础 一、简单模拟&#xff08;循环数组日期进制&#xff09; &#xff08;一&#xff09;日期模拟 知识点 1.把月份写为数组&#xff0c;二月默认为28天。 2.写一个判断闰年的方法&#xff0c;然后循环年份的时候判断并更新二月的天数 3.对于星期数的计算&#…

13、nRF52xx蓝牙学习(GPIOTE组件方式的任务配置)

下面再来探讨下驱动库如何实现任务的配置&#xff0c;驱动库的实现步骤应该和寄存器方式对应&#xff0c;关 键点就是如何调用驱动库的函数。 本例里同样的对比寄存器方式编写两路的 GPOITE 任务输出&#xff0c;一路配置为输出翻转&#xff0c;一路设 置为输出低电平。和 …

Java的基本语法(1)

一、运算符和表达式 举例说明什么是运算符&#xff0c;什么是表达式&#xff1a; int a 1; int b 2; int c a b; 在这个例子当中&#xff0c;是运算符&#xff0c;并且是算术运算符 ab是表达式&#xff0c;因为是运算符&#xff0c;所以ab是算术表达式 1.1算术运算符 …

C++学习之密码学知识

目录 1.文档介绍 2.知识点概述 3.项目准备 4.序列化介绍 5.项目中基础组件介绍 6.基础模块在项目中作用 7.项目中其他模块介绍 8.加密三要素 9.对称加密和非堆成加密 10.对称和非对称加密特点 11.堆成加密算法des 12.des对称加密算法 13.对称加密算法aes 14.知识点…

安装vllm

ubuntu 22.04, RTX3080, cuda 12.1, cudnn 8.9.7&#xff0c;cuda和cudnn的安装参考&#xff1a;https://blog.csdn.net/m0_52111823/article/details/147154526?spm1001.2014.3001.5501。 查看版本对应关系&#xff0c;下载12.1对应的whl包&#xff0c;https://github.com/vl…

【WPF】自定义控件:ShellEditControl-同列单元格编辑支持文本框、下拉框和弹窗

需要实现表格同一列&#xff0c;单元格可以使用文本框直接输入编辑、下拉框选择和弹窗&#xff0c;文本框只能输入数字&#xff0c;弹窗中的数据是若干位的二进制值。 本文提供了两种实现单元格编辑状态下&#xff0c;不同编辑控件的方法&#xff1a; 1、DataTrigger控制控件的…

Gson、Fastjson 和 Jackson 对比解析

目录 1. Gson (Google) 基本介绍&#xff1a; 核心功能&#xff1a; 特点&#xff1a; 使用场景&#xff1a; 2. Fastjson (Alibaba) 基本介绍&#xff1a; 核心功能&#xff1a; 特点&#xff1a; 使用场景&#xff1a; 3. Jackson 基本介绍&#xff1a; 核心功能…

浅谈微信视频号推荐算法

这次可能会稍微有点干货&#xff0c;但保证不晦涩~ 一、算法推荐的本质&#xff1a;猜你喜欢 vs 社交绑架​ 视频号的推荐系统本质上在做两件事&#xff1a; ​预测你的兴趣​&#xff1a;通过你的浏览、点赞、评论、分享等行为&#xff0c;分析你的偏好。​满足社交需求​&…

halcon模板匹配(一)create_shape_model_xld

目录 一、提取刹车盘孔洞轮廓二、形状模板的创建-设置-训练-查找三、找到亮的圆孔四、获得匹配结果五、使用use_polarity进行模板匹配六、计算四个圆对应的矩形框七、创建四个圆对应的模板并查找一、提取刹车盘孔洞轮廓 小技巧总结,使用boundary 函数提取区域边界,在边界范围…