数字类型内置运算,和字符内置运算
5.7自我总结
1.数字类型内置方法(省略数字类型定义,作用,基本运算)
1.数字类型定义,作用,基本运算
https://www.cnblogs.com/pythonywy/p/10797559.html详细的内容,还有些不足地方下面链接中有说明
https://www.cnblogs.com/pythonywy/p/10800876.html补充说明
2.无内置运算
3.一个值或者多个值
一个值
4.有序或者无序
数字类型为一个值,也不存在索引,所以不存在有序或者无序的这种说法
5.可变或不可变
a = 1
print(di(a))
8791457161872
a += 1
print(id(a))
8791457161904
他们值变了,地址也发生了变化说以为不可变
2.字符串类型内置方法(省略数字类型定义,作用,基本运算)
1.数字类型定义,作用,基本运算
https://www.cnblogs.com/pythonywy/p/10797559.html详细的内容,还有些不足地方下面链接中有说明
https://www.cnblogs.com/pythonywy/p/10800876.html补充说明
2.运算
1.必须掌握
a)按索引取值
a = 'yang'
#取其中的y
print(a[0])
y
b)切片
切片工具为[头:尾:步(取值的方向)]#如果头,尾不输入默认为最前面,和最后面,步如果步输入贼默认为1
name = 'yang wen yi'
#012345678910
#用切片工具取其中的yang wen yi
print(name[:])
#用切片工具取其中的wen
print(name[5:8]) # 顾头不顾尾
print(name[-6:-3])#这里正数或者负数代表的是字符串中数据的位置,正为从左往右数,负为从右往左数。
#用切片工具取其中的yn
print(name[:3:2])
#用切片工具取其中的iy
print(name[:-3:-1])
print(name[10:8:-1]) #这里的-1代表从右往左切,如果这里的-1为1则是从左往右切
c)长度len
name = 'yang'
print(len(name))
d)成员运算in/not in
表示判断什么东西里有没有什么,表示判断
name = 'yang'
print('y' in name)
True
e)移除strip
name1 = ' yan '
name2 = 'a yan a'
print(name1.strip())
#yang
print(name2.strip())
#'a yan a'
#strip只移除两端的
f)切分split
name = 'yang,wen,yi'
#按照,把名字切分成3个
print(name.split(',',2))
#['yang', 'wen', 'yi']
#按照,把名字切分成2个
print(name.split(',',2))
#['yang', 'wen,yi'] 默认是从左往右
g)循环
name = 'yangwneyi'
for i in name:
print(i)
'''
y
a
n
g
w
e
n
y
i
'''
2.掌握
a)lstrip&rstrip
#lstrip左端清除 记忆(l=left左,strip清楚)
name = ' yang'
print(name.lstrip())
#yang
#rstrip左端清除 记忆(r=rightt右,strip清除)
b)lower&upper
#LOWER(小写)
name = 'yang WEN'
print(name.lower())
#yang wen #将字符串中的大写变成小写
#upper
name = 'yang WEN'
print(name.upper())
#YANG WEN #将字符串中小写变成大写
c)startswith&endswith
# startswith
name = 'yang WEN'
print(name.startswith('yang'))
#True #内容从前往后找
print(name.endswith('WEN'))
#True
printprint(name.endswith('NEW'))
#False #内容从后往前找但是内容是从左往右读写的
d)rsplit
与split类似,但是切割方向从右往左切割
e)join
#JOIN用于字符串的拼接
name = 'yang,wen,yi'
print(' '.join(name))
#y a n g , w e n , y i
#如果是列表
name_list = ['yang','wen','yi']
print(''.join(name_list))
#yangwenyi
补充纯数字不能拼接
f)replace
#replace(替换)
name = 'yang wen yi'
print(name.replace('yang','wen'))
#wen wen yi
g)isdigit
salary = '111'
print(salary.isdigit())
#True
salary = '111.1'
print(salary.isdigit())
#False
#是否为整列,第一个是,第二个不是
3.了解
a)find|rfind|index|rindex|count
# str之find()、rfind()、index()、rindex()、count()
name = 'yang wen yi'
print(name.find('yang'))
# 0
print(name.find('wen'))
#5 find如果找到结果,则输出为该内容的第一个字符的索引,他找不到会报错
rfind就是从右边开始找结果都是一样的就是开头和找的方向不一样
index找的也是索引与find区别在于他没找会报错
count,找到内容输出为1,找不到内容输入为0
b)center|ljust|rjust|zfill
# str之center()、ljust()、rjust()、zfill()
print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
********************info nick********************* #内容中间,填充两侧
print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
info nick***************************************** #内容左边,填充右边
print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
*****************************************info nick #内容右边边,填充左边
print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}")
00000000000000000000000000000000000000000info nick # 默认用0填充
c)expandtabs
# str之expandtabs()
print(f"a\\tb\\tc: %s"%('a\tb\tc\t')) # 默认制表符8个空格
print(f"'a\\tb\\tc'.expandtabs(32): %s"%('a\tb\tc\t'.expandtabs(32)))
#主要是用来修改\t,输出占位符的个数
d)captalize|swapcase|title
# str之captalize()、swapcase()、title()
captalize()#首字母大写
swapcase()# 大小写互转
title()#每个字母首字母大写
f)is系列
.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)
- isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
- isdigit(): 如果字符串只包含数字则返回True,否则返回False。
- isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
今日题目
-
写代码,有如下变量
name = " aleX"
,请按照要求实现每个功能:-
移除 name 变量对应的值两边的空格,并输出处理结果
print(name.strip(' '))
-
判断 name 变量对应的值是否以 "al" 开头,并输出结果
print(name.startswith('al'))
-
判断 name 变量对应的值是否以 "X" 结尾,并输出结果
print(name.endswith('X'))
-
将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
print(name.replace('l','p'))
-
将 name 变量对应的值根据 “l” 分割,并输出结果。
print(name.split('l'))
-
将 name 变量对应的值变大写,并输出结果
print(name.upper())
-
将 name 变量对应的值变小写,并输出结果
print(name.lower())
-
请输出 name 变量对应的值的第 2 个字符?
print(name[1])
-
请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
-
请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
-
请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index('e'))
-
获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo
for new_name in name: if new_name != name[-1]: print(new_name,end='')
-
-
编写猜年龄游戏,有以下要求:
- 如果3次没有猜对,可以选择继续玩或退出(自定义退出条件)
- 可能会有用户会在输入年龄之后再次输入空白,如
18
,请做处理 - 可能会有用户会恶意输入导致程序报错,如
逗你玩呀
,请做处理
age = 18
num = 0
chance = 3
while num < chance:
ipt_age = input('请输入您的年龄:')
ipt_age = ipt_age.replace(' ','')
if not ipt_age.isdigit() :
print('别乱输入,你这混蛋,请输入数字!!')
continue
int_ipt_age = int(ipt_age)
if int_ipt_age == age:
print('正确')
break
elif int_ipt_age > age:
print('大了')
else:
print('小了')
num += 1
if num == 3:
yes_or_no = input("输入'y'为继续游戏,输入其他任何东西为退出游戏")
if yes_or_no == 'y' :
num = 0
else:
print('游戏结束,拜拜')