python文字教学_【纯文本教程】大学专科的Python基础开发课?p=17
“Python基础开发”课程_课堂笔记(HTML版_017)
Class notes of "Python basic development",this webPage is seventh page.
本页面的“代码demo索引”:
备注:前面“p=15”(前4步的思路)是“【实训项目】打印某年日历”,与“p=16”(完整代码)合并为一篇博客(https://www.cnblogs.com/Robot-DX3906/p/12848563.html)
第五章 Python序列数据
5.1 字符串
这个部分,主要讲“字符串类型”(介绍这种数据类型)和“字符串函数”(内置函数)。
字符串是以英文和中文为主的文字,计算机使用Unicode编码来存储——在存储到磁盘中时,多采用GBK或者是“UTF-8”这两种“形式”(编码方式)之一。
我们(在这小节)的任务就是掌握字符串的操作。
字符串可以看做是有字符组成的数组——“字符数组”可以用来存储字符串,字符串在内存中是以“字符数组”的形式来存储的。
比如说s = 'Hello',是在内存中的连续空间,按顺序保存
0100 1000
0110 0101
0110 1100
0110 1100
0110 1111
这个(这5个“八位二进制数”)是一个整体,是一个“数组”。
01001000 01100101 01101100 01101100 01101111
5.1.1 字符串长度len
len函数是用来获取字符串长度的,做法是“len(string_name)”,后面的小括号里面就是变量名——注意,每个汉字,是一个字符。
5.1.2 读取字符
读出字符串的各个字符,思路是,想得到其中的第i个字符,就可以访问数组元素,比如说使用“s[i]”来读取——当然,第一个字符的下标为0,最后一个字符下标为长度减一。
s[0],s[1],s[2],…,s[len(s)-1]
用for…in的话,就像这样:
s = 'a我们'
n = len(s)#先用变量,获取长度(3)
for i in range(n):#i默认是从零开始的
print(s[i])
s[0] = 'h'#这种写法的错误的
要注意,字符串中的字符,是不能改变的,因此,不能对单独的字符进行赋值!
5.1.3 字符编码
计算机只认识二进制数字,字符也只能以二进制形式,保存在计算机中。(这里不科普二进制)
字符保存在计算机中的二进制数字,称为“Unicode”编码,每个英文字符占两个字节(2Byte=8bit),要知道字符在内存中的(十进制)编码,那么,我们就要用到ord函数。
【demo】字符在内存中的(十进制)编码
s = 'Hi,你好'
n = len(s)#先用变量,获取长度(3)
for i in range(n):
print(s[i],ord(s[i]))#i默认是从零开始的
运行结果如下:
>>>
==================== RESTART: E:\HTML5\Python2020_demo.py ====================
H 72
i 105
, 44
你 20320
好 22909
>>>
汉字的“Unicode编码”比英文字符都要靠后——可以用ord函数看英文大小写的“Unicode编码”,这里就跳过了。
5.1.4 编码转字符
如果我们知道某个字符的(十进制)编码是n的话,可以通过chr函数
【just for fun】Python“Unicode密码”
a = chr(25105)
b = chr(20204)
c = chr(119)
d = chr(101)
print(a,b,c,d)
运行结果如下:
>>>
==================== RESTART: E:\HTML5\Python2020_demo.py ====================
我 们 w e
>>>
好吧,其实你也可以试试下面这行代码:
print(chr(73)+chr(32)+chr(76)+chr(111)+chr(118)+chr(101)+chr(32)+chr(89)+chr(111)+chr(117)+chr(33))
就在IDLE的“Shell”模式中运行就行。
5.1.5 字符串大小比较
单个字符,就是通过(十进制)“Unicode码”来比较的;
字符串的话,就要麻烦一些了(假设有“a”、“b”两个字符串的话,):
按照顺序,分解为单个字符,看第一个字符,“a[0] ”与“b[0] ”进行比较,相等的话,就是“a[1] ”与“b[1] ”进行比较,直到得出结果位置。
如果比完之后,还有剩的,长度大的字符串就大。
如果不好理解的话,可以理解为十进制数中的正整数的大小比较,毕竟,人类社会的进化顺序是
自然数→人类语言→计算机语言
【思路】字符串比较函数
def compare(a,b):#第一部分是比较函数,获取下标范围
m = len(a)
n = len(b)
if m
k=m#短的那个字符串的长度
else:
k=n
for i in range(k):#第二部分是遍历字符串,进行比较
for a[i]>b[i]:
return 1
elif a[i]>b[i]:
return -1
if m==n:#第三部分是用if语句,进行判断,可以用6个“关系运算符”
return 0
elif m>n:
return 1
else:
return -1
关于字符的“大小比较”,是——数字 < 大写字母 < 小写字母 < 汉字
【练习1】输入字符串,统计大写字母的个数
s = input("Enter a string:\n")
count = 0#计数器清零
for i in range(len(s)):#设置循环次数为字符串长度
if s[i]>="A" and s[i]<="Z":#满足条件就让计数器加一
count = count+1
print("count=",count)
【练习2】统计字符串中,大写字母、小写字母、数字的个数
s = input("Enter a string:\n")
upper = 0
lower = 0
digit = 0
for i in range(len(s)):
if s[i]>="A" and s[i]<="Z":
upper = upper+1
if s[i]>="a" and s[i]<="z":
lower = lower+1
if s[i]>="0" and s[i]<="9":
digit = digit+1
print("大写字母:%d\n小写字母:%d\n数字个数:%d"%(upper,lower,digit))
【练习3】将字符串反向显示的两种方法
#第一种方法是从后往前遍历,往后面放
s = input("Enter a string:\n")#在写自定义函数之前,先输入数据
def reverseA(s):#反向函数
t=""#空字符串,用来保存结果
for i in range(len(s)-1,-1,-1):#“range”函数的三个参数:第一个“len(s)-1”是最后一个值的下标,第二个是减到“-1”就结束,第三个是间隔(负数表示下标数值减少)
t = t + s[i]
print(t)
return t
print("反向显示:",reverseA(s))
运行效果如下:
>>>
==================== RESTART: E:\HTML5\Python2020_demo.py ====================
Enter a string:
12345
5
54
543
5432
54321
反向显示: 54321
>>>
#第二种方法是从前向后遍历,将每个字符放在前面
s = input("Enter a string:\n")#在写自定义函数之前,先输入数据
def reverseB(s):
t=""
for i in range(0,len(s)):#从零开始,取到长度
t = s[i] + t#把后一个字符往前面放
print(t)
return t
print("反向显示:",reverseB(s))
运行效果如下:
>>>
==================== RESTART: E:\HTML5\Python2020_demo.py ====================
Enter a string:
12345
1
21
321
4321
54321
反向显示: 54321
>>>
这两种方法只是两种不同的写法,最后得到的结果是不一样的。
【练习4】去掉字符串首尾的空格
def trims(s):
t=""#保存结果
i=0#计数器清零
j=len(s)-1#长度减一,就是最后一个字符的下标
while i<=j and s[i]==" ":
i=i+1#计数器是累加
while i<=j and s[j]==" ":
j=j-1#下标是递减
for k in range(i,j+1):
t=t+s[k]
return t
s = input("Enter a string:\n")
print(s,"length=",len(s))
t = trims(s)
print(t,"length=",len(t))
运行结果如下:
>>>
==================== RESTART: E:\HTML5\Python2020_demo.py ====================
Enter a string:
2020-05-08 09:55
2020-05-08 09:55 length= 25
2020-05-08 09:55 length= 16
>>>
(HTML语言会自动删除连续空格,知道意思即可)
应该是16行代码,只是删除首尾空格,在可以调用内置属性(方法?)的情况下,就这么麻烦。
而使用(字符串)“内置函数”,就可以节省很多代码。
第17堂课,内容为Python字符串的“内置属性”。
本页面(?p=17)的实际上课时间为2020年5月8日第1小节课
python文字教学_【纯文本教程】大学专科的Python基础开发课?p=17相关推荐
- Python 实例教学_ 04_排序
Python 实例教程 Python 实例教学_ 04_排序 第十九课 [870. 优势洗牌](https://leetcode.cn/problems/advantage-shuffle/) [90 ...
- Python 实例教学_ 03_列表
Python 实例教程 Python 实例教学_ 03_列表 第十三课 [844. 比较含退格的字符串](https://leetcode.cn/problems/backspace-string-c ...
- python 下载网页文件_『如何用python把网页上的文本内容保存下来』python爬取网页内容教程...
python爬虫:如何爬网页数据并将其放在文本 用requests库 r=r.requests.get(url) r.concent 保存到文件里就行了 如何用python把网页上的文本内容保存下来 ...
- 阿里达摩院python视频教学_阿里达摩院出品的758集的python教程,据说懂中文就能入门高清版...
小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了吸取教训,小编一定要分享一下攻略,"怎样获得小编分享的教程 ...
- python pptx教学_基于python-pptx库中文文档及使用详解
个人使用样例及部分翻译自官方文档,并详细介绍chart的使用 一:基础应用 1.创建pptx文档类并插入一页幻灯片 from pptx import Presentation prs = Presen ...
- python文字冒险游戏_[Python] 猜数大冒险1.0 用控制台玩的简易文字冒险游戏
[Python] 纯文本查看 复制代码import random def main(): round_counter = 0 # 回合计数器 print('第一关') while True: # 单次 ...
- python ai 教学_【Python AI教学】从零开始学Python AI开发系列01
原标题:[Python AI教学]从零开始学Python AI开发系列01 欢迎开启新的旅程. 从2016年开始,AI人工智能的热潮扑面而来.而在机器学习和深度学习领域,Python位于最受欢迎的编程 ...
- python课堂教学_初中生初学python课堂教学感悟
作者:实验初中 望玉红 21世纪以来,信息技术迅猛发展,深刻地改变着人们的学习.生产.生活和社会交往方式,人类社会已快速进入信息化社会.信息素养是当代社会公民所必备的基本素养,强化信息技术课程教育教学 ...
- python初中教学_初中生初学python课堂教学感悟
作者:实验初中 望玉红 21世纪以来,信息技术迅猛发展,深刻地改变着人们的学习.生产.生活和社会交往方式,人类社会已快速进入信息化社会.信息素养是当代社会公民所必备的基本素养,强化信息技术课程教育教学 ...
- python画图视频_你能分享比较全面的Python视频教程吗?谢谢《用python画图教程视频》...
python好学吗? python相对于C 来说确实是好学的多. python不需要特别关注类型,因此不需要花费太多的时间在变量类型上面.python的语法相比于C 来说,要简单的多. 如何用pyth ...
最新文章
- python程序员职业考试_最新10大Python面试常问的问题,60%的人都不会
- MS SQL Server和MySQL区别
- 父级居中后,并继承子级浮动方法
- 奇怪吸引子---Chua
- 9.Tornado下的一个简易Blog--2013-05-21
- vue项目中assets与static的区别
- cve-2022-22965是什么,一个至少超越我此刻理解力的漏洞
- java.lang.IllegalStateException: No output folder
- 全球与中国高亮度LED灯市场现状及未来发展趋势
- pve万兆网卡驱动_QL3X魔改CPU、CX341A万兆光纤网卡、P106-90显卡
- 韩信点兵(中国剩余定理)
- Android静默拍照(无感知拍照)
- Mybatis文件格式不匹配 -读取xml文件失败
- Mac如何做才能彻底清理垃圾
- REVERSE关键字之REVERSE函数
- 盛大退市背后的故事:华尔街不懂陈天桥
- 考研英语阅读理解做题技巧(2):主旨题
- Loading 用户体验 - 加载时避免闪烁
- 什么是EasyUi?
- 计算机一级考试个人小结作文,期中考试个人总结范文精选五篇
热门文章
- 安全策略篇 安全策略发展历程详解
- error C2144: syntax error: 'int' should be preceded by ';'
- 数据治理(十一):数据安全管理Ranger初步认识
- 关于 IBM Tivoli Storage Manager在Oracle中的应用
- 解决电脑关机状态下按键盘会开机的问题
- JavaScript(Ajax)和Cookie的同源策略
- hdu 4190 Distributing Ballot Boxes
- day3-money enhances memory consolidation-but only for boring material
- 用 dfuse `transaction_lifecycle` 端点跟踪任何交易,包括延期交易
- badboy录制脚本错误问题解决