1. f 表达式
简介:
Python中的f表达式是用来减少输出语句的长度,并用来提高语句效率的
语法格式:
f’{表达式}’
代码示范:
# f 格式化字符串,f代表format, 和%s是一样的功能,但是它很简洁
name = 'Asia'
age = 18
print("我叫%s,明年我就%d了" % (name,age+1))
print(f"我叫{name},明年我就{age+1}了")
2. print 结束符
简介:
默认在python中,print是以\n 结尾,即两个print语句输出结果之间是以换行作为分隔符, 但是有些情况下,我们需要将其换成指定的分隔符,如‘ ’ 或者\t.
语法格式:
print (‘打印的内容’, end=‘分隔符’);
代码示范:
print("Hello",end='\n')
print("World")
print('----'*4)
print("Hello",end=' ')
print("World")
3. 随机数
随机生成整数等,通过引入random模块,调用其中的randint 等方法。
语法
random.randint(起始值,结束值) #包括起始值和结束值
示例
import random
n = random.randint(1,10);
print(n);
猜拳游戏
import random
p=int(input("请出拳:0--石头 1--剪刀 2--布\n"))
# 定义字典,用来存储键值对对应关系
t={0:'石头',1:'剪刀',2:'布'}
c=random.randint(0,2) #结果包括 0 和 2
# python 没有switch
if(p==0):
if (c==0):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"平局")
elif (c==1):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"你赢了")
else:
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"你输了")
elif(p==1):
if(c==0):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"你输了")
elif(c==1):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"平局")
elif(c==2):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"你赢了")
else:
if(c==0):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"你赢了")
elif(c==1):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"你输了")
elif(c==2):
print(f"你出的是{t[p]},电脑出的是{t[c]}."+"平局")
4. 字符串操作
1. 切片
简介
字符串切片是用来获取字符串的一部分数据。因为单纯靠数组获取,只能获取到某一个下标对应的值,所以出现了切片的概念,即显示一小段的字符串。
语法
切片是用来获取字符串中的一部分数据
- str[开始下标: 结束下标: 步长]
- 左闭右开,步长默认为1
- 开始下标、结束下标、步长均可以为负数
- 步长为-1 表示倒序排列
- 如果开始结束下标的方向和步长的方向相反,则输出为空
代码示范
str = '0123456789'
print(str[2:8:1]) # 234567
print(str[2:8]) # 234567
print(str[2:8:-1]) # 输出为空,下标2-8 是从左到右,而步长-1 是从右到左,所以输出为空
print(str[2:8:2]) # 246
print(str[-4:-1:2]) # 68
2. 查找
1). find():
find(需要查找的字符串, 开始查找的下标, 结束查找的下标) , 返回找到的下标
如果不存在,则返回-1
2). index()
index(需要查找的字符串, 开始查找的下标, 结束查找的下标) ,返回找到的下标
如果不存在,报错
示例:
str = 'hello world, stay hard, stay foolish'
print(str.find('stay')) # 13
print(str.find('sty')) # -1
print(str.index('stay')) # 13
print(str.index('sty')) # 'ValueError: substring not found'
3. 字符串操作–修改
字符串属于不可变类型,即使是修改,并不能改变原有字符串。
1)replace() :
- 简介: 替换。 将字符串按指定的字符进行替换,并返回一个新字符串,原有的字符串不变
- 语法: str.replace(‘原有字符串’,‘新字符串’,替换次数)
- 示例:
str='apple and orange and pear'
# 需求:将所有的and 改为 ‘和’
# replace 最后一个参数可以不写,默认是所有。 返回一个新字符串,原有字符串不变
new_str = str.replace('and','和')
print(str) #apple and orange and pear
print(new_str) #apple 和 orange 和 pear
str='apple and orange and pear'
# 需求:将第一个and 改为 ‘和’
# replace 最后一个参数可以不写,默认是所有。 返回一个新字符串,原有字符串不变
new_str = str.replace('and','和',1)
print(str)
print(new_str)
2)split():
- 简介:分割字符串。 将字符串按照指定的分隔符及部分数进行切割,并以列表形式返回,格式是list
- 语法:
str.split(‘分割符’, num) , 返回num+1 个部分,并存在列表中。其中分隔符不会返回。 - 示例:
str='apple and orange and pear'
lst=str.split(' and ')
print(lst) # ['apple', 'orange', 'pear']
str='apple and orange and pear'
lst=str.split(' and ',1)
print(lst) # ['apple', 'orange and pear'], 返回num+1 个元素
3)sorted():
- sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。 - 列表的sort() 方法:
lst = ['TOM','Lily','Amy']
print(lst.sort(),lst) # None ['Amy', 'Lily', 'TOM']
列表的sort() 方法,返回值为None,因为是对列表本身操作,所以,列表本身是被修改了的
- 内建函数sorted() 方法:
lst = ['TOM','Lily','Amy']
print(sorted(lst),lst) # ['Amy', 'Lily', 'TOM'] ['TOM', 'Lily', 'Amy']
内建函数sorted() 方法,不改变列表本身的顺序,且返回一个新列表。 调用方法sorted(列表名)
- 字符串的sorted()调用示例:
arr = 'hello world'
arr1 = sorted(arr)
print(arr1) # [' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
print("".join(arr1)) # dehllloorw
4) join():
- 简介: 合并列表里的字符串数据为一个大字符串
- 语法:“连接的字符”.join(列表名)
- 示例:将[‘a’,‘b’,‘c’] 变成‘A+B+C’
lst1 = ['a','b','c']
# 将lst1里的字符转成相应的大写,并用加号连接
str1='+'.join(lst1).upper()
print(str1) #A+B+C
示例2: 将“Hello World” 按照ascii 码排序后,再连接输出成“HWdellloor”。
str = 'HelloWorld'
print(sorted(str)) # ['H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r']
print("".join(sorted(str))) # HWdellloor
4)capitalize():
语句第一个单词的首字母大写, 同样,不改变本身的大小写
5)title():
语句每个单词的首字母都大写
6)upper():
全大写
7)lower()
全小写
str = 'hello world , stay hard, stay foolish'
str1 = str.capitalize();
print(str1) #Hello world , stay hard, stay foolish
print(str) #hello world , stay hard, stay foolish
str2=str.title();
print(str2) #Hello World , Stay Hard, Stay Foolish
print(str) #hello world , stay hard, stay foolish
str3=str.upper();
print(str3) #HELLO WORLD , STAY HARD, STAY FOOLISH
print(str) #hello world , stay hard, stay foolish
8) lstrip()、rstrip()、strip()
- 简介:
lstrip() 删除字符串左边的空白
rstrip() 删除字符串右边的空白
strip() 删除字符串两边的空白
2. 示例:
str = ' Hello world '
str1 = str.lstrip()
print(str) # ' Hello world '
print(str1) # 'Hello world '
str = ' Hello world '
str1 = str.rstrip()
print(str) # ' Hello world '
print(str1) # ' Hello world'
str = ' Hello world '
str1 = str.strip()
print(str) # ' Hello world '
print(str1) # 'Hello world'
9) ljust() 、rjust()、center()
-
简介:
ljust() : 左对齐。包括str,一共有num个字符,其中,不足的部分填充’.’
str.ljust(num,‘填充字符’)
rjust(): 右对齐
str.rjust(num,‘填充字符’)
center(): 中间对齐
str.center(num,‘填充字符’) -
示例:
str = 'hello'
# ljust() 里面一共是10个字符,字符串靠左书写,剩余位置用. 填充
str1 = str.ljust(10,'.');
print(str1) # 'hello.....'
str2 = str.rjust(10,'.');
print(str2) # '.....hello'
str3 = str.center(10,'.');
print(str3) # '..hello...'
10)ord(字符):
ord(字符)是将某一个字符转为ASCii码值
例:两个字符串是可以比较大小的,请用ord函数比较各个字符的ascii码值大小。
str1 = 'hello'
str2 = 'hi'
print([ord(i)for i in str1]) # [104, 101, 108, 108, 111]
print([ord(j)for j in str2]) # [104, 105]
print([ord(i)for i in str1]>[ord(j)for j in str2]) # False
其实,直接使用str1> str2 也是可以判断的。
4. 字符串操作–判断:
1) startswith(), endswith()
- 简介: 返回true 或 false
- startswith(): 判断字符串是否以某个字串开头
- 语法: str.startswith(子串, 开始位置下标, 结束位置下标), 不写下标,表示整个字符串的长度
str = 'hello world, stay hard, stay foolish'
# 整个字符串是否以hello 开头
print(str.startswith('hello')) # True
# 从第十位开始,至第20位结束[10,20],是否以hello 开头?
print(str.startswith('hello',10,20)) # Flase
str1='0123456789'
print(str1.endswith('9')) # True
print(str1.endswith('4',0,5)) # True
2) isalpha() , isdigit(), isalnum(), isspace()
isalpha(): 判断是否全是字母组成 (如果包括空格,则返回False)
isdigit(): 判断是否全是数字组成
isalnum(): 判断是否至少一个字符, 且由字母或数字组成
isspace(0 : 判断是否只包含空白,如果是,则返回True
str = 'hello world'
print(str.isalpha()) # False
str = 'hello'
print(str.isalpha()) # True
str ='01234'
print(str.isdigit()) # True
str='1234AGF'
print(str.isalnum()) # True
str=''
print(str.isspace()) # False
str = ' '
print(str.isspace()) # True
str = 'Hello world'
print(str.isspace()) # False
5. 字符串删除:
del() 是公共方法,仅支持直接删除字符串,不支持指定元素删除
s = 'Hello world'
del(s)
print(s) # NameError: name 's' is not defined
不支持指定元素删除,否则会报错
s = 'Hello world'
del(s[0]) # TypeError: 'str' object doesn't support item deletion
print(s)