Python - Day11 字符串

 

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

 

 

 

 

 

               
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值