学习python的第九天(主要是数字类型内置运算,和字符内置运算)
程序员文章站
2022-04-14 18:27:36
5.7自我总结 1.数字类型内置方法(省略数字类型定义,作用,基本运算) 1.数字类型定义,作用,基本运算 详细的内容,还有些不足地方下面链接中有说明 补充说明 2.无内置运算 3.一个值或者多个值 一个值 4.有序或者无序 数字类型为一个值,也不存在索引,所以不存在有序或者无序的这种说法 5.可变 ......
5.7自我总结
1.数字类型内置方法(省略数字类型定义,作用,基本运算)
1.数字类型定义,作用,基本运算
详细的内容,还有些不足地方下面链接中有说明
补充说明
2.无内置运算
3.一个值或者多个值
一个值
4.有序或者无序
数字类型为一个值,也不存在索引,所以不存在有序或者无序的这种说法
5.可变或不可变
a = 1 print(di(a)) 8791457161872 a += 1 print(id(a)) 8791457161904 他们值变了,地址也发生了变化说以为不可变
2.字符串类型内置方法(省略数字类型定义,作用,基本运算)
1.数字类型定义,作用,基本运算
详细的内容,还有些不足地方下面链接中有说明
补充说明
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 ipt_age.isdigit() == false: 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' : time == 0 else: print('游戏结束,拜拜')
上一篇: 深入理解Java虚拟机--阅读笔记三
下一篇: dubbo源码阅读之服务引入