03-string字符串和while循环
→→博主新网站,点击跳转←←
03-string字符串和while循环
1. string介绍
python中字符串通常以单引号或者双引号来创建,是计算机语言中最常见的数据类型
string不可变,即如果修改,将会重新分配内存地址
a = "sense"
print(id(a))
a += "2"
print(id(a)) 输出:
3227798249968
3227799102664
2. 字符串的运算
字符串相加:也就是字符串拼接
a = "sense"
b = "wang"
c = a + b
print(c) 输出:
sensewang #如果是数字呢
字符串乘法: 也就是重复字符串n次,它是和整数相乘的
a = "hello world\n" #\n为换行符
print(a*4) 输出:
hello world
hello world
hello world
hello world
字符串大小的比较:根据ASCII值比较
3. 下标及分片
下标:也称为索引,通常表示某个字符在整个字符串中的位置,下标从0开始,下标写在[]中
a = "senSe"
# 取n
print(a[2])
# 取第小s
print(a[0]) 输出:
n
s
分片:也称为切片,通常获取字符串的一部分内容,将序列按段分割
- 实例(使用IPython):
# 格式:[(index_start):(index_end):(Step_length)],开始索引,结束索引,步长 In [1]: string = 'abcdefgh'
In [2]: string[0:2] #取0~2之间的下标,不包括下标2,[0,2),默认步长为1
Out[2]: 'ab'
In [3]: string[0:6:2] #取0~6之间的下标,步长为2,不包含6下标
Out[3]: 'ace'
In [4]: string[2:] #取从2下标以后的所有元素,包括下标2
Out[4]: 'cdefgh'
In [5]: string[:2] #取从下标2以前的所有元素,不包下标2
Out[5]: 'ab'
In [6]: string[:] #取全部元素
Out[6]: 'abcdefgh'
In [7]: string[::2] #取步长为2的全部元素,
Out[7]: 'aceg'
In [8]: string[::-1] #取反转后的全部元素
Out[8]: 'hgfedcba'
In [9]: string[::-3] #取步长为3的全部反转元素
Out[9]: 'heb'
In [10]: string[-2] #取倒数第二个元素
Out[10]: 'g'
In [11]: string[-5:-2] #取从倒数第五个以后到倒数第二个的下标,不包括倒数第五个
Out[11]: 'def'
4. 格式化输出
当想要让数据按照指定的格式输出,需要在字符串中进行格式说明,格式说明由格式字符组成,常见的格式字符如下:
格式字符 描述 %s 格式化字符串 %d 格式化整数 %f 格式化小数 实例:
name = "sense"
age = 18
height = 175.5
print("我的名字是%s,年龄%d岁,身高%.2fcm" % (name,age,height)) #.2表示保留两位小数 输出:
我的名字是sense,年龄18岁,身高175.50cm
5. f-string格式化输出用法
python3.6后引入的新型格式化输出工具,功能更加强大,而且容易上手
该工具把字符串当成一个模板,通过传入的参数进行格式化,以f或者F为修饰符,以{}标明被替换的字段
实例:
name = "sense"
age = 18
height = 175.5
d = {"name":"sense","age":18}
print(f"我的名字是{name},年龄为{age},身高{height}cm.")
print(f"{d['name']},{d['age']}") #还可以对自动进行输出
print(f'{age+2}') #还可以进行数学运算 输出:
我的名字是sense,年龄为18,身高175.5cm.
sense,18
20
6. 字符串方法
因为字符串为最常见的数据类型,所以众多方法也应运而生,包含对字符串的更改、转换、代替等
字符串大小写转换方法
方法名 描述 lower() 把字符串中的英文转为小写 upper() 把字符串中的英文转为大写 swapcase() 把字符串中的大写英文转为小写,小写转为大写 capitalize() 首字母大写,其余小写 title() 每个单词首字母大写 字符串位置整理方法
方法名 描述 center(x,str) 把字符串居中显示,总长度x,填充符为str ljust(x,str) 把字符串左方显示,总长度x,填充符为str rjust(x,str) 把字符串右方显示,总长度x,填充符为str 查找字符串方法
方法名 描述 find(str,num1,num2) 从左到右查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到返回-1 rfind(str,num1,num2) 从右到左查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到返回-1 index(str,num1,num2) 从左到右查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到抛错 rindex(str,num1,num2) 从右到左查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到抛错 截取、分割字符串方法
方法名 描述 lstrip(str) 截掉字符串左侧括号中指定的字符,默认字符是空格 rstrip() 截掉字符串右侧括号中指定的字符,默认字符是空格 split(str) 以str为分割符分割字符串,最后返回list splitlines(keepends=False) 以行为分割符分割字符串,最后返回list,keepends为True时保留换行符 判断字符串方法
方法名 描述 isalpha() 判断字符串中至少有一个字符,且所有的字符都是字母,则会返回True isalnum() 判断字符串中至少有一个字符,且所有的字符都是数字或字母,则会返回True istitle() 判断字符串是标题化,则返回True,反之返回False,即只有每个单词首字母大写 isdigit() 判断字符串只能为数字返回True,反之返回False isspace() 判断字符串只为空格 startwith(str,num1,num2) 判断字符串是否以str开头、num1,num2用于指定范围,不指定范围默认为全部 endwith(str,num1,num2) 判断字符串是否以str结尾、num1,num2用于指定范围,不指定范围默认为全部 字符串其他方法
方法名 描述 len(string) 返回字符串的长度(字符个数) eval(string) 将字符串当成有效表达式求值并返回结果,结果为int count(str,num1,num2) 统计字符串中str出现的次数,num1,num2用于指定范围 replace(old,new,num1) 替换字符串中的字符,num1用于指定替换次数 encode(encoding) 为字符串指定字符编码
7. 布尔值,空值
- 布尔值:True和False,代表真和假,主要用于判断
- 空值:None,一个特殊值,代表无,并不代表0
8. while循环
根据指定条件来循环执行对应的语句,如果条件一直满足,则一直执行
普通while格式
while 条件表达式:
语句
while-else语句:当while的条件不满足后,将会执行else对应的语句
while 条件表达式:
语句
else:
语句2
while循环小案例:
#猜数字小游戏----10次机会在0~10之间猜数,最后统计猜对的次数
import random
times = 0
count = 0
while times < 5: #当times小于5时,就会一直循环
num = random.randint(0,5)
input_str = int(input("请猜数:"))
times += 1 #每次循环到此处,times就+1,这也是能让循环停止的条件
if input_str == num:
print("猜对了!")
count += 1
else:
print("猜错了!")
print(f"共猜对{count}次")
03-string字符串和while循环的更多相关文章
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*) length属性:获取字符串的字符个数.(无论中文字符还是英文字符都算1个字符.) charAt(index)方法:获取指定索引位置的字符.(索引从0开始) indexOf(‘ ...
- Redis学习03——存储字符串(String)
--------------------- 作者:愤怒的小明 来源:CSDN 原文:https://blog.csdn.net/qiwenmingshiwo/article/details/78118 ...
- 漫话C++之string字符串类的使用(有汇编分析)
C++中并不提倡继续使用C风格的字符串,而是为字符串定义了专门的类,名为string. 使用前的准备工作 在使用string类型时,需要包含string头文件,且string位于std命名空间内: # ...
- C++学习37 string字符串的访问和拼接
访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符.string 字符串的起始下标仍是从 0 开始.请看下面的代码: #include <iostrea ...
- 【转】String字符串相加的问题
String字符串相加的问题 前几天同事跟我说我之前写的代码中在操作字符串时候,使用字符串相加的方式而不是使用StringBuffer或者StringBuilder导致内存开销很大.这个问题一直在困扰 ...
- 17.C++-string字符串类(详解)
C++字符串string类 在C语言里,字符串是用字符数组来表示的,而对于应用层而言,会经常用到字符串,而继续使用字符数组,就使得效率非常低. 所以在C++标准库里,通过类string从新自定义了字符 ...
- 集合或数组转成String字符串
1.将集合转成String字符串 String s=""; for (int i = 0; i < numList.size(); i++) { if (s=="& ...
- C# int数组转string字符串
方式一:通过循环数组拼接的方式: int[] types = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; string result = string.Empty ...
- Java常用API——String字符串运算
一.字符串运算 String类 1.概述 String是特殊的引用数据类型,它是final类. 2.构造方法 String str = "abc"; 相当于: char date ...
- js比较两个String字符串找出不同,并将不同处高亮显示
根据java代码改写成js,下边js文件代码: function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.a ...
随机推荐
- 第二阶段scrum-4
1.整个团队的任务量: 2.任务看板: 会议照片: 产品状态: 前端制作完成,数据库在制作中.
- Http协议Get与Post请求
摘要:https://blog.csdn.net/kebi007/article/details/103059900 不就是get拼接url,post传body,get限制字符串长度吗! 请求缓存:G ...
- oracle中设置主键
1.创建表 .创建表 create table "c_user"( "id" number primary key, "username" ...
- 996.ICU 爆发,互联网从业者难逃“高薪陷阱”
从 3 月 27 日开始,截止本文发稿,GitHub 上面的项目 996.ICU 的 Star 数量已经超过 18 万,这场由程序员发动的轰轰烈烈的公开反对 996 工作制的运动,早已突破互联网圈层而 ...
- windows LARGE_INTEGER 错误码输出格式
如果是负数,I32X 版权声明:本文为博主原创文章,未经博主允许不得转载.
- zookeeper 安装及集群
一.zookeeper介绍 zookeeper是一个中间件,为分布式系统提供协调服务,可以为大数据服务,也可以为java服务. 分布式系统,很多计算机组成一个整体,作为一个整体一致对外并处理同一请求, ...
- StarUML 3.0.2安装激活
文章参考:https://blog.csdn.net/sam_shan/article/details/80585240 1.下载StarUML:http://staruml.io/,一直下一步安装. ...
- 二十二、CI框架之模型别名
一.在控制器中调用模型时,可以给模型取别名,之后调用时,调用别名就可以了 二.界面显示如下: 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477 ...
- 如何保障Assignment写作效率?
有没有因为开学要交的Assignment而日夜赶工.身心俱疲啊?写Assignment确实是个体力+脑力活,要一直保持旺盛的精力并不容易.精神和身体的疲劳会慢慢分散你的注意力,进而影响效率和写作质量. ...
- 如何把控好Essay写作结构
留学生在国内写过作文,但是对于essay写作到底了解多少呢?大家觉得essay写作太难是语言问题,但是大家要明白,老师对于内容的考察远重于对语言的考察.同学们的essay写作如果能做到言之有理,自圆其 ...