python字符串的基本处理流程_python基础之流程控制、数字和字符串处理

本文详细介绍了Python编程中的流程控制结构,包括if单分支、双分支和多分支条件判断,以及while循环和for循环的使用。同时,讲解了数字类型,包括整型、浮点型和布尔值的特性及转换方法。此外,还探讨了字符串的处理,如去除空白、分割、长度计算、索引和切片等操作。最后,列举了一些字符串的常用方法,如首字母大写、格式化输出等。
摘要由CSDN通过智能技术生成

流程控制

条件判断

if单分支:当一个“条件”成立时执行相应的操作。

语法结构:

if 条件:

command

流程图:

da818b94c0081d03f3f2521b2605a802.png

示例:如果3大于2,那么输出字符串"very good"

#!/usr/bin/env python

# -*- coding: utf-8 -*-

if 3 > 2:

print("very good")

if双分支:当“条件成立”时候执行一个操作,或者“条件不成立”执行另外一个操作操作。

语法结构:

if 条件:

command1

else:

command2

流程图:

67ec316b51a6a8e47ac44d35add7aa1f.png

示例:输入一个数,如果输入的是5,那么输出you are right,输入其他数,输出you are wrong

#!/usr/bin/env python

# -*- coding: utf-8 -*-

num=input('please input a number:')

if num == 5:

print('you are right')

else:

print('you are wrong')

if多分支:相当于if语句嵌套,针对多个条件执行不同操作。

语法结构:

if 条件:

command1

elif 条件:

command2

...         #可存在多个elif判断

command...

else:

commandn

流程图:

dc9dbd3f95e1ce5f2d785e6348843e02.png

示例:输入一个数字,如果在0-9范围内,将该数字转成二进制输出,如果在10到19范围内,将该数字转成8进制输出,在20或者更大,那么转换成16进制输出

#!/usr/bin/env python

# -*- coding: utf-8 -*-

num=int(input('please input a number:'))  #input输入为str字符串格式用int转化成整数

if num in range(10):        #range()方法是一个范围,for循环详细说明

print(bin(num))        #bin()方法,转化为二进制

elif num in range(10,20):

print(oct(num))        #oct()方法,转化为八进制

else:

print(hex(num))        #hex()方法,转化为十六进制

循环

for循环:根据标量的不同取值,重复执行一组命令操作。

语法结构:

for 变量 in 集合:

command

流程图:

46523c6d83ba4929a024ffe8a826cb79.png

示例1:依次输出数字0到10

for i in range(11):

print(i)

range(11)表示一个范围,从头到尾依次是0,1,2,3,4,5,6,7,8,9,10,共十一个数字,这个范围顾头不顾尾,即不包括最大的那个数

示例2:依次输出数字5到10

for i in range(5,11):

print(i)

range(5,11),表示开头为5,结束为11的一个范围,包括5但不包括11

示例3:0到10数字范围,每隔一个数输出一个数

for i in range(0,11,2):

print(i)

输出结果为:0,2,4,6,8,10,range()方法的第三个数表示步数,也就是间隔的值

补充:for+else

else内的指令只在for循环结束后执行,并且该循环没有被break或continue打断

for i in range(0,11,2):

print(i)

else:

print('ok')

输出结果:

0

2

4

6

8

10

ok

条件循环

while条件循环:重复测试指令的条件,只要条件为真则反复执行对应的命令操作,直到条件为假。如果使用true作为循环条件能够产生无限循环。

语法结构:

while 条件 :

command

流程图:

2216345d5362feb9d9ed57b370dfbd6f.png

示例:打印0到100的所有的奇数

i=1

while i <=100 :

print(i)

i = i + 2

补充:while+else

表示while在正常循环结束后才能执行else,即循环过程中没有被break和continue打断,完全循环后才能执行else的指令

示例:

i=1

while i <=5 :

print(i)

i = i + 2

else:

print('ok')

输出结果:

1

3

5

ok

数字

数字类型包括:整型和浮点型(即整数和小数),布尔值,复数

数字特性:

1、只能存放一个值,不论这个数字有多长

2、一经定义,不可更改,因为数字是不可变的(如果不理解,看过后边的数组tuple后就理解了)

3、通过变量直接访问

整型

整型可以用十进制、二进制、八进制和十六进制表示,如十进制的10、二进制的1010、八进制的12和十六进制的a都表示是整数10

print(10)

print(bin(10))   #10的十进制转换二进制

print(oct(10))   #10的十进制转换八进制

print(hex(10))   #10的十进制转换十六进制,0-9和abcdef

输出为:

10

0b1010    #0b表示二进制

0o12     #0o表示八进制

0xa      #0x表示16进制

整型在python2里是有长度限制的,分为整型和长整型,在python3里没有长度限制,所以数字再长都可以叫做整型,当然可以通过长整型方法将整型编程长整型,长整型的数字最后有一个L标识。

其他常用方法(简略):

int()  转化为整型

abs()  求绝对值

float()  转换层浮点型

浮点型

即小数,如1.2,0.3等

浮点数科学计数法:

print(1.3e-3) #1.3的10的-3次方、e3表示10的3次方

布尔值

True用1表示

False用0表示

字符串

字符串

字符串是一个有序的字符的集合,用于存储和表示基本的文件信息

字符串特性:

1、只能存放一个值

2、不可变

3、按照从左到右的顺序定义字符集和,索引从0开始有序访问

定义方法:字符串定义,四种引号都是定义字符串

a='xyz'

b="xyz"

c='''xyz'''

d="""xyz"""

字符串处理

移除空白:把字符串的前后指定的字符位置移除,中间的无法移除

s1='abc '

s2='**********abc*******'

s3='**********a**bc*******'

print(s1.strip(' '))

print(s2.strip('*'))

print(s3.strip('*'))

输出结果:

abc

abc

a**bc

分割:指定字符为分隔符,将字符串转换成list

s1='abc|def|ghi'

print(s1.split('|'))

输出结果:

['abc', 'def', 'ghi']

长度:统计字符串长度,包括空格和符号

s1='abc '

s2='**********abc*******'

s3='**********a**bc*******'

print(len(s1))

print(len(s2))

print(len(s3))

输出结果:

16

20

22

索引:表示字符的位置,从0开始计数

s1='abc '

s2='**********abc*******'

s3='**********a**bc*******'

print(s1[2])  #0位置为a,1位置为b,2位置为c

print(s2[11])

print(s3[-8])  #-8位置为从后开始数第8个字符,从后计数的第一个字符位置为-1位置

输出结果:

c

b

c

切片:根据索引位置匹配需要的字符串片段

s1='abcdefghi'

print(s1[2:5])  #2,3,4位置

print(s1[2:8:2])  #匹配2,4,6位置,第二个2表示步数,每隔一个匹配一个

print(s1[-5:-3])  #倒序-5,-4位置

输出结果:

cde

ceg

ef

其他常用方法:

首字母大写

s1='abc def abc'

print(s1.capitalize())

输出结果:

Abc def abc

统计某个字符的数量,空格也算字符

s1='abc def abc'

print(s1.count('a'))

print(s1.count('a',0,4)) #表示0-4位置,不包括4位置

输出结果:

2  #整个字符串有两个a

1  #0,1,2,3位置有一个a

检验开头和结尾字符串

s1='abc def abc'

print(s1.endswith('c'))

print(s1.startswith('a'))

输出结果:

True

True

查找字符串内是否包含该字符

s1='abc def abc'

print(s1.find('b'))

print(s1.find('d'))

输出结果:

1    #输出的是匹配的第一个字符的索引位置

4

格式化字符串

msg1='Name:{},age:{},sex:{}'

print(msg1)

print(msg1.format('egon',18,'male'))

msg2='Name:{0},age:{1},sex:{0}'

print(msg2.format('aaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbb'))

msg3='Name:{x},age:{y},sex:{z}'

print(msg3.format(y=18,x='egon',z='male'))

输出结果:

Name:{},age:{},sex:{}

Name:egon,age:18,sex:male

Name:aaaaaaaaaaaaaaaaa,age:bbbbbbbbbbbbbb,sex:aaaaaaaaaaaaaaaaa

Name:egon,age:18,sex:male

索引(查看索引位置)

s1='abc def abc'

print(s1.index('a'))  #匹配第一个a的索引位置

print(s1[s1.index('e')])  #调用用索引位置

校验字符串是否为纯数字

s1='123'

print(s1.isdigit())

输出结果:

True

替换

msg='hello alex'  #赋值时候实际上是msg=str('hello alex'),replace()方法是str所赋予的,即str.replace()

print(msg.replace('x','X'))

print(msg.replace('alex','bob'))

print(msg.replace('l','A'))

print(msg.replace('l','A',1))

print(msg.replace('l','A',2))    #第二个数字为替换的次数

输出结果:

hello aleX

hello bob

heAAo aAex

heAlo alex

heAAo alex

大写转换

x='hello'

print(x.upper())

输出结果:

HELLO

检验是否是全大写

x='HELLO'

print(x.isupper())

输出结果:

True

小写转换和检验

x='HELLO'

print(x.lower())

print(x.islower())

输出结果:

hello

False

校验是不是空格

x=' '     #空格不等于空

print(x.isspace())

输出结果:

True

开头大写

x='hello'

print(x.title())

输出结果:

Hello

校验开头是否为大写

msg='Hello'

print(msg.istitle())

输出结果:

True

左对齐和右对齐:数字表示对齐后的长度,后边的星号为长度不够用星号补齐

x='abc'

print(x.ljust(10,'*'))

print(x.rjust(10,'*'))

输出结果:

abc*******

*******abc

大小写交换

x='Ab'

print(x.swapcase())

输出结果:

aB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值