Python - Day11 字符串-程序员宅基地

技术标签: python  老男孩全栈  

 

Python - Day10

字符串

expandtab 断句20,\t不再找,制作表格

test="1234567\t89"
v=test.expandtabs(6)
print(v)

test="username\temail\tpassword\nlaiying\[email protected]\t123\t\nlaiying\[email protected]\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

 

 

 

 

 

               
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_34766121/article/details/80243575

智能推荐

使用 arm-linux-androideabi-addr2line 工具定位 libunity.so 崩溃问题-程序员宅基地

文章浏览阅读710次,点赞13次,收藏7次。它的名称有点不同 - aarch64-linux-android-addr2line。尽管该实用程序的名称不包含单词arm,但它成功地解密了arm64-v8下的堆栈跟踪,并通常感知arm64-v8的字符。是 NDK 自带的调试工具,可以用来分析 so 崩溃时输出的的内存地址。之后就是通过 cmd 进入到这个路径。找到了 64 位所需的实用程序。_arm-linux-androideabi

javaweb-邮件发送_javaweb发送邮件-程序员宅基地

javaweb-邮件发送 摘要: 本文介绍了邮件传输协议(SMTP和POP3)以及电子邮件的发送和接收过程。还讨论了纯文本文件、带图片和附件的邮件发送方法,以及通过servlet方式注册邮箱和使用springboot框架发送邮件的实现。

element-ui table 设置表格滚动条位置_element table 滚动条位置-程序员宅基地

文章浏览阅读4.3k次,点赞6次,收藏11次。在切换不同页面时(被 keep-alive 缓存的组件间切换),页面中的element-ui table的滚动条位置没有停留在原来的位置。目前需要切换不同的页面返回来后,滚动条保持在原来的位置。_element table 滚动条位置

前端开发经验总结_属性值[session.getattribute("strpath")]引用["],在值内使用时必须-程序员宅基地

文章浏览阅读2.6k次。 我设置nowrap和不设置nowrap效果都一样。就是表格随着文字自动伸展,为什么? →回答问题:TD元素noWrap属性的行为与TD元素的width属性有关。 ◆如果未设置TD宽度,则noWrap属性是起作用的。◆如果设置了TD宽度,则noWrap属性是不起作用的。 http://www.blueidea.com/tech/web/2003/943.as_属性值[session.getattribute("strpath")]引用["],在值内使用时必须被转义。

JS如何把Object对象的数据输出到控制台中_前端怎么通过控制台查看字段取值-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏3次。 前端时间在编写程序时遇到这样一个问题,即在前端页面通过一些js框架自带的异步请求返回的数据类型为Object数据类型,笔者根据网上查阅到的资料,找到以下这种简单的方式://把Object类型转为Json数据格式,再通过console命令在控制台中打印出来console.log("xhr的值为:"+JSON.st..._前端怎么通过控制台查看字段取值

8.cc.Button组件使用详解_cc button.start-程序员宅基地

文章浏览阅读556次。1. cc.Button添加按钮的方法 2种方式 (1)直接创建带Button组件的节点; (2) 先创建节点,再添加组件;按钮组件, 按钮是游戏中最常用的组件, 点击然后响应事件;按钮的过渡效果: 过渡: 普通状态, 鼠标滑动到物体上, 按下状态, 禁用状态 (1)没有过渡,只有响应事件; (2)颜色过渡, 过渡效果中使用颜色; (3)精灵..._cc button.start

随便推点

计算机专业游戏本推荐,2018高性价比游戏本推荐_游戏笔记本哪个好-太平洋电脑网...-程序员宅基地

文章浏览阅读245次。【PConline海选导购】晃眼间,秋风又起,让人振奋的开学季又要到来了!虽然说没有学习压力的暑假,在家着实悠哉,但想到回校后可以跟小伙伴们一起各种开黑吃鸡,是不是就感到很兴奋呢?说到“吃鸡”这种吃配置的游戏,就不得不说游戏本了,毕竟普通的笔记本电脑很难给我们带来畅快的游戏体验。而近年来游戏本市场俨然成为了各大厂商的必争之地,而随着开学季的到来,各大厂商更是推出了众多促销活动,下面就让我们一起来看..._计应专业游戏本

codePen按钮样式学习

看到codepen里面有的按钮搞得很炫酷,但其实也不是很难,就学习记录一下。

服务器维护中没法直播游戏,我的世界盒子显示维护中如何进入战堂服务器-程序员宅基地

文章浏览阅读408次。时间:2021-08-11编辑:hxh斗罗大陆魂师对决火雨队怎么搭配?火雨队是近期非常热门的一套阵容,不少玩家想了解该阵容,那么下面就让小编给大家带来斗罗大陆魂师对决火雨队阵容推荐,感兴趣的小伙伴们一起来看看吧。时间:2021-08-11编辑:hxh玩家在巅峰演武副本中不知道怎么打秦明,秦明的盾很厚不知道怎么破?那么下面就让小编给大家带来斗罗大陆魂师对决巅峰演武秦明破盾攻略,感兴趣的小伙伴们一起来...

GNU Radio之Schmidl & Cox OFDM synch.底层C++实现

在 GNU Radio OFDM 系统中,一个非常重要的环节是在接收端准确地同步和检测发送端发出的信号。这就是 Schmidl & Cox 同步算法发挥作用的地方。Schmidl & Cox 算法是一种用于 OFDM 信号的时间同步的技术。本文对其底层 C++ 源码进行学习记录。

项目开发规范

REST,表述性状态转换,他是一种软件架构风格使用URL定位资源,HTTP动词描述操作根据发出请求类型来区分操作此为风格,是约定方式,可以打破描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。

3.8设计模式——State 状态模式(行为型)

允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。