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

智能推荐

专访涯海:阿里云中间件是如何支撑双11的?_智盛 阿里云-程序员宅基地

文章浏览阅读100次。播报员:各位开发者朋友们,大家好。欢迎收看我们这一期的双11技术播报栏目,我是你们的播报员莫孤。今天我们依然还是双11技术播报的特别篇,特别邀请了阿里云中间件团队的涯海来参加我们这一期的双11技术播报栏目,他是这一次中间件团队的大队长,带领着中间件团队参加了双11的整个项目,在此过程中肯定有非常多好玩的事情,也会有非常多的技术突破给我们分享。那就让我们来热烈欢迎一下涯海来到我们的直播间。涯海:谢谢莫孤。播报员:要不你先跟大家介绍一下自己?涯海:我是来自阿里云智能的中间件团队队长涯_智盛 阿里云

使用 layui实例多个时间控件选择方法-程序员宅基地

文章浏览阅读3.8k次,点赞2次,收藏2次。1、原始写法 多个时间控件选择 定义不同的ID或者样式 来实例化//执行一个laydate实例 laydate.render({ elem: '#start' //指定元素 });2、同时多个绑定实例化时间控件 lay(".你的样式") 实现思路 找到所有input 然后循环实例//同时绑定多个 时间控件 lay('.date').each(fu...

字符串中的字典取出value值(eval 使用及介绍)_求字典里value值的和-程序员宅基地

文章浏览阅读1.8w次,点赞3次,收藏16次。eval:eval() 函数用来执行一个字符串表达式,并返回表达式的原始值。例如:有个字符串 A="{'value': 'hello'}"想要输出该字符串的value值,应该怎么办。如果仅仅是一个字典的话直接取dict['key']就可以轻松取出来,但是在字符串中我们就必须想办法把字符串转化成字典。这时候eval函数就该闪亮登场了。代码如下:>>> A="{'..._求字典里value值的和

串口透传luci-app-ser2net的OpenWrt页面制作_ser2net_client-程序员宅基地

文章浏览阅读4.7k次,点赞6次,收藏18次。在网上找了一圈,也没有找到luci-app-ser2net的OpenWrt页面,于是自己动手写了个luci-app-ser2net。至于串口透传模块ser2net_client和ser2net_server可以联系本人。用户只需简单设置,即可实现串口到网络的双向数据透明传输,支持心跳功能,支持5路socket连接。将luci-app-ser2net目录放到OpenWrt源码的package/u_ser2net_client

实战PyQt5: 049-滚动区域控件QScrollArea_pyqt qscrollarea-程序员宅基地

文章浏览阅读6.6k次,点赞12次,收藏41次。问题的提出在GUI应用中,常常会遇到这样的问题,比如显示一幅大的图像,但显示区域有限,不能完整地显示整个图像,或者能展示界面的区域有限,但是界面中需要展现的控件、内容却很多,在限定的区域内无法全部展示。这个时候我们就需要区域是可以水平和(或)垂直方向可以滚动,以实现对整个图像或者所有控件的浏览。在PyQt中,提供滚动区控件QScrollArea来实现这个功能。QScrollArea简介QScrollArea滚动区域控件类提供了关于另一个窗口的滚动的视图,一个滚动区域通常用来显示一个子窗口。如果子_pyqt qscrollarea

krpano元素之textstyle标签_krpano text_backgroundcolor-程序员宅基地

文章浏览阅读1.1k次。textstyle name=... 定义样式名称 font=Times 定义文字字体 fontsize=12.0 定义文字大小 bold=true 是否粗体 _krpano text_backgroundcolor

随便推点

球谐光照——杂谈——待完成_光线通过球谐编码-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏5次。https://zhuanlan.zhihu.com/p/49436452什么是球谐光照?什么是PRT?那其实顾名思义,球谐光照(spherical harmonics lighting)就是基于球面调和(SH,Spherical Harmonics)这个数学工具的一种光照/着色算法。一般来说,球谐光照可以用有限带宽的Spherical Harmonics来模拟低频的环境光照明,反射光和高光..._光线通过球谐编码

unity 下载图片使用并保存在本地_unity 保存图片成了一个文件夹-程序员宅基地

文章浏览阅读4.7k次。using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using UnityEngine.UI;public class Down : MonoBehaviour{ //图片下载测试 WWW www; //请求 string filePath..._unity 保存图片成了一个文件夹

密码学-分组加密的工作模式_密文传输错误扩散-程序员宅基地

文章浏览阅读633次。分组加密的工作模式多重加密和三重DES双重DES加密C=E(K2,E(K1,P))C=E(K_2, E(K_1, P))C=E(K2​,E(K1​,P))约化为单次加密可能存在K3K_3K3​满足E(K3,P)=(K2,E(K1,P))E(K_3, P)=(K_2, E(K_1, P))E(K3​,P)=(K2​,E(K1​,P))中间相遇攻击对与任何分组密码都有效,若C=E(K2,E(K1,P))C=E(K_2, E(K_1, P))C=E(K2​,E(K1​,P)),则存在X=E(_密文传输错误扩散

如何安装AI环境-程序员宅基地

文章浏览阅读143次。要安装AI环境,首先需要安装相应的开发工具和库。常用的工具包括Python、Anaconda和Jupyter Notebook。库可能包括TensorFlow、PyTorch、Scikit-learn等。具体安装步骤如下:下载并安装 Python:https://www.python.org/downloads/下载并安装 Anaconda:https://www.anaconda.co..._ai的安装准备需要python吗

python面向对象三大特征——继承-程序员宅基地

文章浏览阅读338次,点赞4次,收藏10次。所谓类的继承,就是一个类(子类)从另外一个类(父类)获得了所有的成员。如果一个新类继承自一个设计好的类,就直接具备了已有类的特征,就大大降低了工作难度。已有的类,称为“父类或者基类”,新的类,称为“子类或者派生类”。3、Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。1、如果在子类中需要父类的构造方法就需要显式的调用父类的构造方法,或者不重写父类的构造方法。

CDN工作机制和负载均衡概述_cdn 负载均衡 流量 都经过-程序员宅基地

文章浏览阅读7.4k次,点赞4次,收藏17次。1. CDN架构 CDN(Content Delivery Network),内容分发网络,是构筑在Internet上的一种先进的流量分配网络。通过在现有的Internet中增加一层新的网络架构,使用户可以就近取得所需内容,提高用户访问网站的响应速度。 目前CDN都以缓存网站中的静态数据为主,如 CSS、JS、图片和静态页面等数据。通常来说CDN要达到以下几个目标: a. 可扩展..._cdn 负载均衡 流量 都经过

推荐文章

热门文章

相关标签