目录
- 03-string字符串和while循环
- 1. string介绍
- 2. 字符串的运算
- 3. 下标及分片
- 4. 格式化输出
- 5. f-string格式化输出用法
- 6. 字符串方法
- 7. 布尔值,空值
- 8. 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}次")
原文地址:https://www.cnblogs.com/SenseW/p/12353332.html
时间: 2024-11-05 20:46:07