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}次")