#!/usr/bin/python# Write Python 3 code in this online editor and run it.s1='hello word'print(type(s1))print(s1)#字符串中的每个字符都有一个位置编号,从 0 开始正向编号,或从 -1 开始反向编号。print(s1[-3])s2="""I'm a student, study in Xidian, work in ShenZhen"""print(type(s2))print(s2)deftest():"""test string"""return"test pass"print(test())s3=b"hello"print(type(s3))print(s3)print(s3[2])s4=r"C:\Users\nam\Desktop"# r 指定路径中\不会被转义print(s4)# C:\Users\name\Desktop#字符编码s="你好"b=s.encode("utf-8")# str -> bytesprint(b)# b'\xe4\xbd\xa0\xe5\xa5\xbd's_b=b.decode("utf-8")# bytes -> strprint(s_b)# 常用占位符# %s - 字符串# %d - 整数# %f - 浮点数(%.2f 保留两位小数)# %x - 十六进制name="zhangsan"age=20score=85.5print("姓名:%s,年龄:%d,成绩:%.1f"%(name,age,score))# 输出:姓名:张三,年龄:20,成绩:85.5# 按位置print("姓名:{},年龄:{},成绩:{}".format(name,age,score))# 按索引print("姓名:{0},年龄:{1},成绩:{2}".format(name,age,score))# 按关键字(最清晰)print("姓名:{n},年龄:{a},成绩:{s}".format(n=name,a=age,s=score))# f-string使用,格式: f"输出语句"# 直接在字符串中用 {} 嵌入变量print(f"姓名:{name},年龄:{age},成绩:{score}")# 姓名:张三,年龄:20,成绩:85.5# 可以执行表达式print(f"明年年龄:{age+1}")# 可以调用方法print(f"姓名大写:{name.upper()}")# 对齐与填充print("{:<10}".format("左对齐"))# 左对齐,宽度10print("{:>10}".format("右对齐"))# 右对齐print("{:^10}".format("居中"))# 居中对齐print("{:*^10}".format("居中"))# 用*填充居中# 格式控制print(f"成绩保留两位:{score:.2f}")print(f"居中:{'居中':*^10}")# ****居中****#遍历: 使用len + ranges5="Hello Python"print(s5)foriinrange(len(s5)):print(f"索引{i}:{s5[i]}")#遍历:使用enumeratefori,charinenumerate(s5):print(f"索引{i}:{char}")# 指定起始索引, strat=1 指定第一位index为1, start=3 s5 index从3开始fori,charinenumerate(s5,start=1):print(f"第{i}个字符:{char}")print(s5.find("Python"))# ✅ 索引范围在 0 到 len(s)-1 之间print(s[4])# o# ❌ IndexError:索引越界# print(s[5]) # 报错!# 获取字符串长度print(len(s))# 5print(s[len(s)-1])# o(最后一个字符)#切片可以从字符串中截取一部分,语法为 s[start:end:step]s="Hello Python"# s[起始:结束:步长]# 包含起始位置,不包含结束位置print(s[0:5])# Hello(取索引0-4)print(s[6:12])# Python(取索引6-11)print(s[:5])# Hello(省略起始,从0开始)print(s[6:])# Python(省略结束,到末尾)print(s[:])# **Hello Python(复制整个字符串)#反向是-len(s) : -1print(s[-6:])# Python(取后6个字符)print(s[:-7])# Hel(去后7个字符)print(s[-6:-1])# Pytho(索引-6到-2)#步长print(s[::2])# HloPto(每隔一个取一个)print(s[1::2])# el yhn(从索引1开始,每隔一个取一个)print(s[::-1])# ***nohtyP olleH(反转字符串)Python学习笔记——字符串
张小明
前端开发工程师
专科实训毕业论文写作:我使用ai写作工具的个人体会
**免责声明:本文仅为本人写作过程中的个人体验记录与思考,不存在任何产品推荐或者商业推广意图。AI工具只适合用来做思路启发、行文梳理。毕业论文全部内容、实训分析都要求学生本人独立完成,请严格遵从本校毕业设计的学术规范。 最近在完成自…
语音合成非得上云?这个本地开源 TTS 在 Mac 上每秒能跑 1000+ 字符
前几天在折腾一个给网页加"朗读"功能的小项目,本来想接个云端 TTS(TTS)的 API,结果一算账就劝退了:每一次朗读都要走网络,用户读的内容得传出去,按调用量还得付费。后来我翻到 Supert…
Apache POI设置Word页面尺寸与边距实战
最近在搞一个 Java 后端导出 Word 文档的功能,需求清单里明明白白写着:默认 A4 纸、上下边距 2.54 厘米、左右边距 3.18 厘米。刚开始我寻思这不就是页面设置嘛,Word 里点两下的事。但换到用 Apache POI 5.2.2 在代码里操作,水就深…
Google警告安卓两个0-day漏洞被利用:安全周报0407里的HTTP/2 DoS与亚洲金融数据窃取
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
Unity多人联机架构实战:Orleans+SuperSocket+Redis+MongoDB搭建详解
聊实时项目的时候,服务端选型永远是个绕不开的大问题。我最近在项目里刚落地一套架构:Unity客户端负责表现和交互,Orleans服务端扛业务逻辑与有状态actor,SuperSocket做TCP长连接网关,Redis处理缓存和分布式协作&#…
Redis 8.2.2 分布式集群设计与容量规划指南
适用版本:Redis Open Source 8.2.2(8.2 为长期支持版本 LTS) 文档定位:可落地的设计与部署操作手册 编制日期:2026 年 9 月1. 概述与设计目标 1.1 为什么需要 Redis 分布式 Redis 以内存读写、亚毫秒延迟著称ÿ…