Python - Day10
字符串
expandtab 断句20,\t不再找,制作表格
test="1234567\t89"
v=test.expandtabs(6)
print(v)
test="username\temail\tpassword\nlaiying\tying@q.com\t123\t\nlaiying\tying@q.com\t123"
v=test.expandtabs(20)
print(v)
isalpha()是否包含字母,汉字(isalnum 是否只包含字母、数字)
test="asdf"
v=test.isalpha()
print(v)
test="asd2f"
v=test.isalpha()
print(v)
定义文件层次,当前输入是否是数字:1,②
isdecimal(十进制小数):用来做加法
isdigit(支持 ②):标题
isnumeric(支持中文):中文不能做加法
均用于判断字符串是否为数字
类型 | 二 | ② | 2 |
isdecimal | False | False | True |
isdigit | False | True | True |
isnumeric | True | True | True |
test="123"
v1=test.isdecimal()
v2=test.isdigit()
print(v1,v2)
test="②"
v1=test.isdecimal()
v2=test.isdigit()
v3=test.isnumeric()
print(v1,v2,v3)
True
test="a123"
v1=test.isdecimal()
v2=test.isdigit()
print(v1,v2)
test="二"
v1=test.isdecimal()
v2=test.isdigit()
v3=test.isnumeric()
print(v1,v2,v3)
False False True
swapcace:大小写相互转换
test="aLex"
v=test.swapcase()
print(v)
isidentifier()判断 字母,数字,下划线:标识符 def class
a="_123"
v=a.isidentifier()
print(v)
isprintable:字符串中是否存在包含不可显示的字符
\t 制表符 \n 换行
test="oius\aadsfj"
v=test.isprintable()
print(v)
test="oiusaadsfj"
v=test.isprintable()
print(v)
isspace:判断是否全部都是空格(空字符串)
test=" "
v=test.isspace()
print(v)
test=""
v=test.isspace()
print(v)
istitle:判断字符串中每个单词首字母是否大写
title:转换成标题
test="If You love Her"
v=test.istitle()
print(v)
v1=test.title()
print(v1)
v2=v1.istitle()
print(v2)
******join:将字符串中的每一个元素按照指定分隔符进行拼接
test="你是风儿我是沙"
print(test)
t=' '
v=t.join(test)
print(v)
test="你是风儿我是沙"
print(test)
v='_'.join(test)
print(v)
用于网站验证码
islower/isupper:判断是否全部是大小写
lower/upper:转换为全部大小写
test="Alex"
v1=test.islower()
v2=test.lower()
print(v1,v2)
v11=test.isupper()
v22=test.upper()
print(v11,v22)
False alex
False ALEX
strip:去除左右空白,去除\t,\n
test=" Alex "
v1=test.lstrip()
v2=test.rstrip()
v3=test.strip()
print(v1)
print(v2)
print(v3)
Alex
Alex
Alex
24:11
移除指定字符串,有限最多匹配
test="xAlex"
v1=test.lstrip("xa")
v2=test.rstrip("9lexaexa")
v3=test.strip("x")
print(v1)
print(v2)
print(v3)
Alex
xA
Ale
先进行最多匹配
test="xAlex"
v1=test.lstrip("xa")
v2=test.rstrip("9lexaexa") # 从右开始匹配
v3=test.strip("x")
v4=test.rstrip("lexxA")
print(v1)
print(v2)
print(v4)
print(v3)
Alex
xA
Ale
maketracns & translate 字符替换
test="闪耀基金会"
test1="晒你窝的"
m=str.maketrans("闪耀基金","晒你窝的")
new_v=test.translate(m)
print(new_v)
晒你窝的会晒你窝的会
pratation/split 分割
test="testsdfsdf"
v1=test.partition("s")
v2=test.rpartition("s")
v3=test.split("s",2)
v4=test.rsplit("s",2)
print(v1,v2,v3,v4)
('te', 's', 'tsdfsdf') ('testsdf', 's', 'df') ['te', 't', 'dfsdf'] ['test', 'df', 'df']
pratition 分割成三份
split 多次分割,第二个参数为分割次数
实用:计算器
正则表达式进行分割,可以设置是否想要分割的元素
splitline 根据换行符分割 \n true保留换行 false不保留换行
test="tes\ntsdf\nsdf"
v1=test.splitlines(True)
v2=test.splitlines(False)
print(v1)
print(v2)
['tes\n', 'tsdf\n', 'sdf']
['tes', 'tsdf', 'sdf']
startswith/endswith 以开始/以结束
test="backend 1.1.1.1b"
v1=test.startswith("a")
v2=test.endswith("b")
print(v1)
print(v2)
False
True
replace:替换
name ="Jonghyunhyunhyun"
v=name.replace("hyun","key",2)
print(v)
Jongkeykeyhyun
#############灰魔法##############
索引、下标:获取字符串中的某一个字符
test="backend 1.1.1.1b"
v1=test[0]
v2=test[3]
print(v1)
print(v2)
b
k
切片:索引范围
test="backend 1.1.1.1b"
v1=test[0:3]
v2=test[3:-1]
print(v1)
print(v2)
bac
kend 1.1.1.1
len:获取字符串长度
Python3
test="backend 1.1.1.1b"
test2="一得阁"
v1=len(test)
v2=len(test2)
print(v1)
print(v2)
16
3
len和join在表格里使用!
输出字符串中的每一个字符:
test="Jonghyun"
i=0
while i<(len(test)):
v=test[i]
print(v)
i+=1
print("=====")
J
o
n
g
h
y
u
n
=====
for循环
test ="Jonghyun"
for zjw in test:
print (zjw)
J
o
n
g
h
y
u
n
for 变量名 in 字符串:
xxxxx
可在其他数据类型中使用:for 索引 切片
range:帮助创建连续数字
name ="Jonghyunhyunhyun"
for zjw in name:
print(zjw)
break
J
name ="Jonghyunhyunhyun"
for zjw in name:
print(zjw)
J
o
n
g
h
y
u
n
h
y
u
n
h
y
u
n
v=range(10)
for zjw in v:
print(zjw)
0
1
2
3
4
5
6
7
8
9
设置步长,连续数字
v=range(0,10,2)
for zjw in v:
print(zjw)
0
2
4
6
8
######################深灰魔法########################
字符串在内存中一旦创建,就不可修改,一旦修改,就会创建一个新的字符串
将文字 对应的索引打印出来
test=input(">>>")
print(test) # test=fuy test[0]=f
l=len(test)
print(l)
r=range(0,l) # l=>3 ,range(0,3)
for item in r:
print(item,test[item]) #0=>f,1=>u,2=>y
>>>fuy
fuy
3
0 f
1 u
2 y
简化版
test=input(">>>")
for item in range(0,len(test)):
print(item,test[item]) #0=>f,1=>u,2=>y
>>>SHINee
0 S
1 H
2 I
3 N
4 e
5 e
练习题:
1.执行Python脚本的两种方式
Python解释器
Python 1.py 执行
2.简述位、字节的关系
8位一个字节
计算机以字节为单位,存储时以位为单位
3.简述ASCII、unicode、utf-8、gbk的关系
4、请写出“李杰”分别用 utf-8和gbk编码所占的位数
8 4
a="李杰"
python 3: #字符
len(a) #2
python 2: #字节
len(a) #6
5、Python单行注释和多行注释分别用什么
#
""" """
6、声明变量注意事项有哪些
数字 字母 下划线
7.如有一个变量n1*5,请使用int提供的方法,得到该变量
bvit——length
8、布尔值分别有什么
True False
"" 空字符串为假
" " 真
0 假
其他 真
a="123"
b=int(a)
a=123
b=str(a)
a=123
b1-bool(a)
b="i"
b2=bool(b)
9、阅读代码、请写出执行结果
a="alex"
b=a.capitalize()
print(a)
print(b)
alex
Alex
10、写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
f. 请问,上一题 e 分割之后得到值是什么类型(可选)?
g. 将 name 变量对应的值变大写,并输出结果
h. 将 name 变量对应的值变小写,并输出结果
i. 请输出 name 变量对应的值的第 2 个字符?
j. 请输出 name 变量对应的值的前 3 个字符?
k. 请输出 name 变量对应的值的后 2 个字符?
l. 请输出 name 变量对应的值中 “e” 所在索引位置?
m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
name = " aleX"
a=name.strip()
print(a)
b=name.startswith("al")
print(b)
c=name.endswith("X")
print(c)
d=name.replace("l","p")
print(d)
e=name.split("l")
print(e)
"""f=
print(f)"""
g=name.upper()
print(g)
h=name.lower()
print(h)
i=name[1]
print(i)
j=name[0:3]
print(j)
k=name[len(name)-2:len(name)]
print(k)
"""l1=name.split(e)
l=l1.__len__(1)
print(l)"""
m=name[1:-1]
print(m)
21、字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
可迭代对象:可以使用for循环
for i in 值:
print(i)
int str bool
类,类型
str 各种方法
对象,根据str类型创建一个对象,s1
s1=“alex”
s2=“alex”
22、请用代码实现:
a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
li="alexericrain"
i='_'.join(li)
print(i)
a_l_e_x_e_r_i_c_r_a_i_n
b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选)
li=['alex', 'eric', 'rain']
i='_'.join(li)
print(i)
alex_eric_rain
23、Python2 中的 range 和 Python3 中的 range 的区别?
python2 range :直接创建放在
python2 xrange:等同于 python3 里的range
python3 range:只有循环、迭代时才创建
for i in range (0,100,1):
print(i)
for i in range(100,0,-1):
print(i)
24、实现一个整数加法计算器: 如: content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
content = input('请输入内容:')
v1,v2=content.split('+')
v=int(v1)+int(v2)
print(v1)
print(v2)
print(v)
请输入内容:5+9
5
9
14
25、计算用户输入的内容中有几个十进制小数?几个字母? 如: content = input('请输入内容:') # 如:asduiaf878123jkjsfd-213928
c1=0
c2=0
content = input('请输入内容:')
for item in content:
if item.isdigit():
c1 += 1
if item.isalpha():
c2 += 1
print(c1)
print(c2)
请输入内容:123ddsdf
3
5
26、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
类 对象
int 9
str xxoo
27、制作趣味模板程序 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
name = input('请输入姓名:')
location=input('请输入地点:')
hobby=input("请输入爱好:")
print("敬爱可亲的"+name+",最喜欢在"+location+hobby)
请输入姓名:nick
请输入地点:外婆家
请输入爱好:打麻将
敬爱可亲的nick,最喜欢在外婆家打麻将
formate:
template="敬爱可亲的{0},最喜欢在{1}{2}"
n=input("name:")
l=input("location:")
h=input("hobby:")
v=template.format(n,l,h)
print(v)
name:nick
location:bj
hobby:run
敬爱可亲的nick,最喜欢在bjrun
28、制作随机验证码,不区分大小写。
流程:
- 用户执行程序
- 给用户显示需要输入的验证码
- 用户输入的值 用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:
def check_code():
import random
checkcode = ''
for i in range(4):
current = random.randrange(0,4)
if current !=i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
return checkcode
while True:
code = check_code()
print(code)
v=input(">>")
if v==code:
print("Congratulation!")
break
else :
continue
G5FG
>>Gdkw
JH6C
>>jh6c
QNYC
>>NQYC
VTKP
>>VTKP
Congratulation!
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如 "苍老师" "东京热",则将内容替换为 ***
sentence = input('句子:')
m=sentence.replace("家","*")
v=m.replace("点点","..")
print(v)
句子:在家喝一点点
在*喝一..
30、制作表格 循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效) 如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
user = "name\tpassword\temail\t\n"
while True:
n = input('name:')
if n=="q" or n=="Q":
print(user.expandtabs(20))
break
else:
user=user+n[0:20]+"\t"
p = input('password:')
if p=="q" or p=="Q":
print(user.expandtabs(20))
break
else:
user=user+p[0:20]+"\t"
e = input ('email:')
if e == "q" or e == "Q":
print (user.expandtabs (20))
break
else:
user = user + e[0:20] + "\t\n"
name:nick
password:123
email:elksjfl
name:may
password:234
email:@@
name:q
只有前 20 个字符有效
str[0:20]
以表格形式打印
expandtab