python自动化的初体验——变量、字符串及其函数、整数

1.python 的变量和数据类型

hello world

hello world 为字符串,在使用python输出的时候直接打印即可,例如:

print(“hello world!”)

上方显示的是hello world 的print语句输出代码,下方显示的是运行的结果
上方显示的是hello world 的print语句输出代码,下方显示的是运行的结果

print函数和input函数

print函数:输出函数,负责将内容输出至工作台
input函数:从控制台获取一个输入的数据,使用input从控制台获取的数据时字符串

age = input("您的年龄是:")
print("年龄是:",age)
print("类型",type(age))
#例题:怎么将控制台中的日期转换成年月日类型的日期
data = input("当前的日期是:")
print("日期是:{0}年{1}月{2}日".format(data[0:4],data[4:6],data[6:]))
print("类型",type(data))

在这里插入图片描述

简单的变量

1.变量的格式
格式:变量名 =变量值;变量名是标识符,其名称不能用于命名其他的文件或者函数、类
打印变量名的时候,输出的是变量值的信息,例如:

msg="hello world"
print(msg)

在这里插入图片描述

2.变量是会被覆盖的,python程序中更改变量的值后,输出的永远是最新的值

msg="hello world"
print(msg)
msg="i love python"
print(msg)

在这里插入图片描述
3.简单的变量的赋值的解析
赋值运算:将等号右边的值赋值给等号左边的变量
解析:变量的值在计算机中时存在内存中的,给变量赋值就是给一个个内存中的值加标识符,如果两个标识符等于同一个值,则两个标识符指向同一个内存值,验证方法:看内存的id

x=1
y=1
print(id(x))
print(id(y))

在这里插入图片描述

*

  • python3中,可以使用*来接收多个元素,将其接收之后形成一个列表
  • 注意,*不能单独使用
在这里插入代码片

数值型

  1. 数字变量一般分为整数(iint)和浮点数(float),复数(complex)和布尔(bool)
  2. 复数,有虚数和实数组成,虚数和实数部分都是浮点数
  3. 布尔,int型的子类,仅有两个实例,True和False,对应1和0,可以直接和整数进行运算
  4. 整数仅仅支持长整型,浮点数仅仅支持双精度,不支持单精度,注意:关键字不能用于命名。
  5. 使用type函数可显示数据类型,返回的是一个类;使用isinstance可判断变量是否是目标类型,返回信息为布尔值;isinstance中的元素可以加多个,只要符合其中一个就返回True
  6. 数字变量可以强制转换
  7. 转换的数据必须是数字格式,不能将字符串类型的数据转换数值型
  8. int转换为float时,在整数后面添加小数点和0,但是float转换为int型时,是直接截取,没有四舍五入一说,和//类似,只拿整数部分
m=5.1
print(complex(m))
print(int(m))
print(float(m))
print(bool(m))
print(isinstance(6,str),type(m))
mm = {"1":"2"}
print(isinstance(mm,(str,dict,int)))

在这里插入图片描述

数字处理函数

数字的取值
  1. 使用数字出来函数的时候,需要导入math的内置模块
  2. floor()方法,对小数向下取整,直接省略小数点后面的部分
  3. ceil()方法,对小数向上取整,在原整数的基础上+1
  4. round()方法,不是math模块的方法,直接调用即可,处理数字时四舍六入五取偶(五取偶指的是取最近的偶数)
  5. 代码示例:
import math
x=3.1415926
print("floor:",math.floor(x))
print("ceil:",math.ceil(x))
print("round,四舍:",round(x))
print("round,六入:",round(3.8))
print("round,五取偶:",round(3.5))
print("round,五取偶:",round(4.5))

在这里插入图片描述

数字的大小与计算
  1. min() 取最小值,max()取最大值;括号中可以是列表,元组,多个相比较的元素,注意,相比时,元素的类型必须一致
  2. pow(x,y) 计算x**y 计算次方
  3. math.sqrt() 开跟方
  4. math.pi 圆周率(pai)
  5. math.e 计算自然常数e的值
  6. bin() 转换为数字的二进制,返回信息为字符串
  7. oct() 转换为数值的八进制,返回信息为字符串
  8. hex() 转换为数字的十六进制,返回信息为字符串
  9. 代码示例:
import math
print(min(1,2),min([3,77,9]),min((77,9)),min("aa","bb"))
print(max(1,2),max([3,77,9]),max((99,9)),max((True,False)))
print(math.sqrt(100),math.pow(6,2))
print(math.pi,math.e)
print(bin(2),oct(2),hex(16),type(bin(16)))

在这里插入图片描述

python的命名规则

为了使python代码便于阅读和理解,python的文件名及变量名在命名的时候需要遵循一定的规则:

  1. 变量名/文件名只能是由字母、数字、下划线组成,可以是以下划线和字母开头,但是不能使用数字开头,例如:名称为:msg;msg_1 ;_msg_1等
  2. 变量名/文件名不能包含空格,但是可使用下划线来分隔其中的单词
  3. 不能将python的关键字或者函数名、模块名、变量名来进行命名,即不要使用python用于特殊用途的单词,例如:print、input、if、for、class、str、list、dict、while、def,第三方库的模块名称,已经命名的变量或者文件名等等
  4. 变量名/文件名即简短又存在描述性,见名知意
  5. 慎用小写字母l(L)和大写字母O,因为容易被看成1和0
  6. 变量名 在命名时一般都为小写字母,不能以数字开头

问:如何获取python中的关键字?
答:导入keyword模块,使用其模块的kwlist方法

import keyword
a = keyword.kwlist
print(a)

在这里插入图片描述

变量的定义与赋值

如果引用一个变量,就一定要确认这个变量是否被定义或者赋值,如果只定义未赋值,或者没有定义变量,就会出现以下的错误,例如:1.打印不存在的变量

msg="hello world"
print(mg)

在这里插入图片描述
2.定义后未赋值
在这里插入图片描述
如果想让变量正确打印,将变量名称输入正确即可

msg="hello world"
print(msg)

2.python 的数据类型——字符串及其函数的使用方法

  • 格式化输出主要用在日志
  • 其他的方法按照优先级:join,split,replace,strip,lower,upper,is系列,startswith endswith

字符串的格式

  • 字符串:一系列字符,字符串是有序不可变的

  • 因为他是序列,所以其支持for循环遍历读取

  • 字符串中的元素不支持增删改,其和元祖一样,不能改任何元素,修改的话会返回新的字符串

  • 在python中使用单引号/双引号/三引号括起来,例如:

    “i love study”
    ‘my name is yezi’
    ‘’’ my name is yezi’‘’

[备注] 三引号括起来的字符串可换行

item = ''' my name is yezi 
我爱python'''

在这里插入图片描述
若想打印的字符串中存在单引号或者双引号,怎么打印?
答:使用不同的引号即可,即如果字符串内容中存在双引号,可使用单引号表示字符串,同理,存在单引号,使用双引号表示字符串;若单引号和双引号都存在,可使用三引号表示字符串

   item = "学习'python'" #打印的内容中存在单引号
    item_1 = '学习"python"' #打印的内容中存在双引号
    item_2 = ''''学习'"python"''' #打印的内容中存在单引号和双引号
    print(item)
    print(item_1)
    print(item_2)

在这里插入图片描述

字符串的取值及切片

1.字符串的取值格式:字符串名[索引值]
2.索引:python给字符串中的每个元素都进行编号,索引都是从0开始,为正向编号;反向编号,从-1开 始,-1 -2 -3 -4 从尾到头。以下是代码示例:
3.字符串取多个值需要用到切片,公式:字符串名[索引头:索引尾:步长]。 特性:取头不取尾,如果只给两个值,其默认步长为1

msg = "i love study python"
a=msg[3]     # 正向取值
b=msg[-8]    # 反向取值
c=msg[0:9:1] #取值多个
d=msg[0:9] #默认步长为1
e=msg[::-1]#反向输出,不输入值,默认为正无穷和负无穷
print('正向取值:{0},反向取值:{1},取多个值:{2}'.format(a,b,c))
print('反向输出结果:{0},默认步长结果:{1}'.format(e,d))

-代码的运行结果如下
在这里插入图片描述
问:如何使用切片方式,使字符串倒序排列?

item = "中国'北京'天安门"
print(item[::-1])#不输入表示无穷大和无穷小,步长为-1
print(item[-1:-10:-1])#倒序取值方式,正确
print(item[8:-10:-1])#-1和8表示的是一个位置,所以可替换
print(item[8:0:-1])#左开右闭,不能取值到0,只能到1,所以少了一个字符
print(item[8:-1:-1])#错误的表达方式,因为-1和8表示的是一个字母,相当于没有取值,故没有结果打印

在这里插入图片描述

字符串的拼接(“+”、format、join)

+

1.字符串之间的合并,使用"+",要注意的是:使用“+”合并,两边的数据类型必须一致,否则会报错
2.其作用是将两个字符串链接起来
3.存在return返回值,会返回一个新的字符串

msg='my name is YEZI '
message='i am a STUDENT with class python12'
str_msg='i am studying python'+msg+'i believe I can get a good result'+" "+message
str_1=msg+message
print(str_msg)
print(str_1)

一下是运行结果:
在这里插入图片描述

  • 当“+”两边的数据类型不一致的时候,会报如下的错误:
    在这里插入图片描述

format

语法及基础用法
  • format是使用{}和:来代替以前的%
  • format函数可接受不限个参数,位置可以不按照顺序
  • 语法:“{}”.format(参数名),如果{}中不填写数字,就直接按照顺序来填充,花括号中填写索引,指的是填写括号中的第几个参数
  • 上述语法中,如果{}中填写了索引,那么字符串中所有的格式化的花括号都要填写索引索引不能由间断的情况
  • 索引从0开始,参数个数少于填充数时,必须填写索引
  • 也可以在字符串中直接填写参数名来填充参数,使用这种方式,参数必须使用指定的关键字来写,不能直接引用变量的名称
a=15
b="yaya"
print("无index,顺序赋值:","my name is {},age:{}".format(a,b),"my name is {},age:{}".format(b,a))
print("指定索引赋值:","my name is {1},age:{0}".format(a,b))
print("参数个数少于填充数:","my name is {0},age:{0}".format(a))
print("参数名填充:","my name is {b},age:{a}".format(a=16,b="yiyi")))
========================run_result=======================
无index,顺序赋值: my name is 15,age:yaya my name is yaya,age:15
指定索引赋值: my name is yaya,age:15
参数个数少于填充数: my name is 15,age:15
参数名填充: my name is yiyi,age:16
format的填充和对齐
  • 填充和对齐通常一起使用后
  • ^ < >分别代表剧中,左对齐和右对齐,后面带宽度
  • 冒号后面带填充字符,只能带一个字符,不能指定的话默认使用空格填充
b="yaya"
print("{:*>15}".format(b))
print("{:>{}}".format(b,6))
================run_result=============
***********yaya
  yaya

【解析】
-"{:*>15}".format(b),以:开头,*为填充字符,如果没有填充字符,就表示用空格填充,>表示右对齐,15的意思是15个字节,因为yaya只有4个字节,所以右11*来填充字符串

  • {:>{}}".format(b,6),以:开头,因为没有设置填充字符,所以默认使用的空格,>表示右对齐,后面又一个嵌套的花括号,但这个数值从后面的参数中传入,所以宽度可以自定义
format数字格式化
  • 浮点数通过f,整数通过d进行需要的格式化
数字格式输出描述
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:+.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2)
5{:x<4d}5xxx数字补x (填充右边, 宽度为4
10{:x<4d}10xx数字补x (填充右边, 宽度为4
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
10000000001.00e+09-1.00指数记法
13{:>10d}13右对齐 (默认, 宽度为10)
13{:<10d}13左对齐 (宽度为10)
13{:^10d}13中间对齐 (宽度为10)
11‘{:b}’.format(11)1101二进制
11‘{:d}’.format(11)11十进制
11‘{:o}’.format(11)13八进制, //这里打成中文的冒号了,因为用英文的会打出一个O的表情
11‘{:x}’.format(11)b十六进制
11‘{:#x}’.format(11)0x式十六进制+小写
11‘{:#X}’.format(11)0xB0x式十六进制+大写
format使用不同的数据类型传参
class value():
    id = '001'
    name = 'hello'
if __name__ == '__main__':
    print("====================class==============")
    print('ID:{Value.id},Name{Value.name}'.format(Value = value))
    #key-value
    print("====================key-value==============")
    print("key-value",'ID:{id},Name:{name}'.format(id='001',name='hello'))
    #列表
    print("====================list===============")
    list_1=['001','hello']
    print("列表:",'ID:{List[0]},Name:{List[1]}'.format(List = list_1))
    print("列表:",'ID:{0[0]},Name:{0[1]}'.format(list_1))
    print("====================dict===============")
    dict_1={"id":"001","name":"hello"}
    print("字典:",('ID:{id},Name:{name}'.format(**dict_1)))
    print("====================魔法参数==============")
    args = [',','.']
    kwargs = {'id': '001','name':'hello'}
    print('ID:{id}{}Name:{name}{}'.format(*args, **kwargs))
 =======================run_result========================
 ====================class==============
ID:001,Namehello
====================key-value==============
key-value ID:001,Name:hello
====================list===============
列表: ID:001,Name:hello
列表: ID:001,Name:hello
====================dict===============
字典: ID:001,Name:hello
====================魔法参数==============
ID:001,Name:hello.

join

  • 语法:“string”.join(a)
    1.存在return返回对象,返回新的字符串
    2作用:将可迭代的对象链接起来,使用string作为分隔符
    3.可迭代对象a本身的元素就是字符串
msg='my name is YEZI '
message='i am a STUDENT with class python12'
str_msg='i am studying python'+msg+'=='+'i believe I can get a good result'+" "+message
str_j="*".join(msg)
str_h="*".join([msg,message])
str_1=msg+message
print('字符串+:',str_msg)
print('变量+:',str_1)
print('字符串拼接:',str_j)
print('列表拼接:',str_h)

=====================运行结果================
字符串+: i am studying pythonmy name is YEZI ==i believe I can get a good result i am a STUDENT with class python12
变量+: my name is YEZI i am a STUDENT with class python12
字符串拼接: m*y* *n*a*m*e* *i*s* *Y*E*Z*I* 
列表拼接: my name is YEZI *i am a STUDENT with class python12

字符串的格式化输出

(一):%d,%s,%f string digital(整数) float
1)格式化输出 占位符: %s占位,需要放字符串;%d占位,需要放整数,%f,占位,需要放浮点数
2)不需要同时打印好几个,也不需要不停的换行,只要使用占位符就好
3)后面的参数与占位符之间按顺序赋值,一一对应,将参数的值传递给占位符
4)占位符中间的标点可以输出,格式化参数的赋值是根据有多少个占位符来决定的,和标点没有关系,加标点只是为了方便区分,辨认
5)整数的占位符不能代替字符串的占位符,因为不匹配,但是字符串的占位符可以代替整数的占位符,字符串可以将任何数据都转换成字符串
总结:%d 只能放数字,不能放其他数据 ; %s 可以放任何数据,可以放字符串,也可以放整数和浮点数; %f也只能放数字 使用此种方式的格式化输出最保险的是都使用%s来传参
6)代码及运行结果如下:

name="yezi"
course='python'
class_id=47
age=18
salary=5000
print('''
姓名是:%s
班级是:%s,%d
年龄是:%d
工资是:%d
#工资是:%s #字符串的占位符可放在数字的位置上,但是反过来不行
'''%(name,course,class_id,age,salary))

在这里插入图片描述

  • 不能将数字占位符放在字符串的位置上,否则会出现以下错误,但是可以将字符串占位符放在数字位置上

在这里插入图片描述

使用制表符或者换行符来增加空白

在编程中,“空白”泛指任何非打印字符,例如空格、制表符、换行符,可使用空白来设置格式输出,增加代码的易读性

在代码中增加制表符,可使用\t,换行可使用\n,代码及运行结果如下:

print("python")
print("\tpython")
print("Java\npython")
print("Java\n\tpython\n\tC\n\tPhP")

在这里插入图片描述
若要使字符串中的转义字符失效,有三种方法可实现:

  • 在转义字符的“\”前再添加一个相同方向的""
  • 在字符串前添加小写的r
  • 在字符串前添加大写的R**

其示例代码如下

print("python")
print("\\tpython") #添加相同方向的斜杠
print(r"Java\npython") #添加小写的r
print(R"Java\n\tpython\n\tC\n\tPhP")#添加大写的R

在这里插入图片描述

删除字符串的空白

  • 删除字符串开头的空白,可使用函数rstrip()
  • 删除字符串末尾的空白,可使用函数lstrip()
  • 删除字符串两端的空白,可使用函数strip(),此函数还可以用来去除l两端指定的字符
  • 使用以上函数删除两边的空白的作用是暂时的,只针对本行的代码,如果要永久删除,需要将删除后的值赋值给变量进行保存
  • 使用rstrip的返回值是字典,其他两个函数的返回值是字符串

代码及运行结果如下

msg = ' python '
msg_str = '666666我很喜欢吃苹果66666'
print(msg)
message = msg.rsplit()
print(message, type(message))
print(msg)
print(msg.lstrip())
print(msg.strip())
print(msg_str.strip('6'))

在这里插入图片描述

查找字符串find rfind

1.使用方法:字符串.find(自己指定的字符或者字符串);查找方式;从左至右查找
2.如果没有找到,就返回-1;如果传入的单个字符找到了,就返回字符的索引;如果传入的是字符串找到了,就返回第一个字符所在的索引值
rfind :从右至做查找,方式和find一致
3.代码及运行结果如下:

s= 'my name is yezi nene'
print(s.find("n",2,-1))#传参起始位置找寻
print(s.find('n'))#如果传入的是字符串找到了,就返回第一个字符所在的索引值
print(s.rfind("n"))#rfind 从右至做找
print(s.find("age"))#如果没有找到,就返回-1
================执行结果================
3
3
18
-1

字符串的替代 replace strip

replace

-语法: 字符串.replace(old,new,count)

  • 存在return返回值,返回替换之后的字符串
  • 作用:字符串如果找到匹配替换为新子串,返回新字符串,不会对原来的字符串进行修改
  • count表示替换几次,不指定就是全部替换
  • old和new必须传参,count可传可不传

,代码及运行结果如下:

s= 'my name is yezi,yezi'
s_1=s.replace("yezi","fyc",1)
s_2=s.replace("yezi","fyc")
print(s_1)
print(s_2)
=================执行结果===============
my name is fyc,yezi
my name is fyc,fyc

strip lstrip rstrip

  • 语法:strip(chars)
  • 作用:将字符串前后的空格删除(括号内没有chars),也可以指定字符(chars)进行删除
  • 存在return返回值,返回去除后的结果
  • lstrip :从左去除空白字符
  • rstrip:从右去除空白字符
s = " Hello Python  I am very very sorry  "
s_1 = "+++Hello Python  I am very very sorry+++"
print("删除左右空格:",s.strip())
print("删除左右+:",s_1.strip("+"))#两头去除
print("删除左侧括号内的内容:",s.lstrip("He ry"))#从左开始,不能针对空白字符
print("删除右侧括号内的内容:",s.rstrip("r yiamso"))#从右开始

==================执行结果==================
删除左右空格: Hello Python  I am very very sorry
删除左右+: Hello Python  I am very very sorry
删除左侧括号内的内容: llo Python  I am very very sorry  
删除右侧括号内的内容:  Hello Python  I am very ve

字符串切割:split partition rsplit splitlines

split

定义:将字符串按照分隔符分割成若干个字符串,并返回列表

  • 语法:字符串.split(sep,maxspilit),不填写sep的情况下,默认分隔符是空格
  • 切割时,作为分隔符的字符串会消失
  • 切割顺序,从左至右
  • 存在return返回值,返回信息为最后切割完成的列表
  • 切割后列表中的元素是字符串类型的
  • 切割时,存在几个切割标志就切几次,如果标志在最后则形成空字符串
  • 切割时可使用maxspilit指定次数,指定次数后根据指定的次数切割,-1表示遍历整个字符串

代码及运行结果如下:

m="@hi,@你@好@"
n='12345'
print('切割后的字符串结果是:{}'.format(m.split('@')))#一共三个@,所以切割三次,最后一个为空的字符串
print('切割后的字符串结果是:{}'.format(n.split('2')))#返回结果为列表,列表中的数据类型为字符串
print('切割后的字符串结果是:{}'.format(m.split('@',2)))#因为指定了切割次数,所以切割两次

=======================运行结果====================
切割后的字符串结果是:['', 'hi,', '你', '好', '']
切割后的字符串结果是:['1', '345']
切割后的字符串结果是:['', 'hi,', '你@好@']

rsplit(和split的不同在于,反方向切割)

  • 语法:字符串.rsplit(sep,maxspilit),不填写sep的情况下,默认分隔符是空格
  • 切割时,作为分隔符的字符串会消失
  • 切割顺序,从右至左
  • 存在return返回值,返回信息为最后切割完成的列表
  • 切割后列表中的元素是字符串类型的
  • 切割时,存在几个切割标志就切几次,如果标志在最后则形成空字符串
  • 切割时可使用maxspilit指定次数,指定次数后根据指定的次数切割,-1表示遍历整个字符串
m="@hi,@你@好@"
n='12345'
print('切割后的字符串结果是:{}'.format(m.rsplit('@')))#一共三个@,所以切割三次,最后一个为空的字符串
print('切割后的字符串结果是:{}'.format(n.rsplit('2')))#返回结果为列表,列表中的数据类型为字符串
print('切割后的字符串结果是:{}'.format(m.rsplit('@',2)))#因为指定了切割次数,所以切割两次

==========================执行结果=======================
切割后的字符串结果是:['', 'hi,', '你', '好', '']
切割后的字符串结果是:['1', '345']
切割后的字符串结果是:['@hi,@你', '好', '']

partition

定义:将字符串按照分隔符分割成两段,返回这2段和分割符的元组

  • 语法:partition(sep)
  • 从左至右,遇到分隔符就将字符串分为两部分,返回头,分隔符,尾组成的三元数组,如果没有找到分隔符,就返回头,两个空元素的三元组
  • sep分割字符串,必须指定
  • rpartition :partition的反方向切割方法,使用方式和partition相同
s1="i`m a supper student"
print(s1.partition('s'))
print(s1.partition("stu"))
print(s1.partition(' '))
print(s1.partition('abc'))
print("***********反方向*************")
print(s1.rpartition('s'))
print(s1.rpartition("stu"))
print(s1.rpartition(' '))
print(s1.rpartition('abc'))


==============执行结果============
('i`m a ', 's', 'upper student')
('i`m a supper ', 'stu', 'dent')
('i`m', ' ', 'a supper student')
('i`m a supper student', '', '')
***********反方向*************
('i`m a supper ', 's', 'tudent')
('i`m a supper ', 'stu', 'dent')
('i`m a supper', ' ', 'student')
('', '', 'i`m a supper student')

splitlines

  • 语法 splitlines([keepsends])
  • 按照行来切分字符串
  • keepsends 指的是是否保留分隔符
  • 分隔符包括\n,\r,\r\n等
  • 存在return返回值,返回分割后的字符串列表
s1='''i am a teater
You are a stutent \n ab c\n\nde fg\rkl\r\nc'''
print(s1)
print(s1.splitlines())
print(s1.splitlines(True))
===================执行结果========================
i am a teater
You are a stutent 
 ab c

kl
c
['i am a teater', 'You are a stutent ', ' ab c', '', 'de fg', 'kl', 'c']
['i am a teater\n', 'You are a stutent \n', ' ab c\n', '\n', 'de fg\r', 'kl\r\n', 'c']

字符串的其他常用函数

  • 变换大小写 全部大写:字符串.upper(),
  • 全部小写:字符串.lower()
  • 大小写互换 字符串.swapcase()
  • 字符串.capitalize() 首个单词大写
  • 上面方法的使用场景:做接口测试的时候,有时候需要判断请求方法的情况,使用上面的方法可以将所有的情况全部列出来
  • 统计有多少个使用的字符:字符串.count(统计目标,从哪儿开始,到哪儿结束),从左至右查询
  • 字符居中:字符串.center(字符) 索引,
  • 被查询字符的位置,如果是字符串,返回第一个字母的索引:字符串.index()
  • 判断函数:判断字符串
    • s.isdigit() 是否全部是数字
    • s.isalpha():是否全部是字母或者汉字
    • s.isalnum():是否是数字和字母组成
    • s.islower():是否全部小写
    • s.isupper():是否全部大写
      常用来判断输入的数字是否合法(重点)

以下是代码和运行结果

x='python PYTHON'
y='123456'
print(f'''supper是:{x.upper()},
lower是:{ x.lower()},swapcase是:{x.swapcase()},
title是{x.title()},capitalize是{x.capitalize()}''')
print(f'''count是:{x.count('P',0,13)},
index是:{x.index("PY")},是否数字:{x.isdigit()},
是否字母:{y.isalpha()},是否数字+字母:{y.isalnum()},
是否全部大写:{y.islower()},是否全部小写:{y.isupper()}''')
=====================执行结果=================
supper是:PYTHON PYTHON,
lower是:python python,swapcase是:PYTHON python,
title是Python Python,capitalize是Python python
count是:1,
index是:7,是否数字:False,
是否字母:False,是否数字+字母:True,
是否全部大写:False,是否全部小写:False

字符串判断 startswith endswith

  • 判断字符串是否是以XXX开头,或者是否是以XXX结尾
  • 场景:判断网址是否以http开头,或者是否以com结尾

endswith

  • 在指定区间之内,字符串是否以指定字符串结尾
  • 存在return,返回True或者false

startswith

  • 在指定区间之内,字符串是否以指定字符串结尾
  • 存在return返回值,返回True或者False
s= "I am very very very sorry"
print(s.startswith("very"))
print(s.startswith("very",5,9))
print(s.endswith("sorry",5))
print(s.endswith("sorry",5,-1))
=================执行结果==========================
False
True
True
False

字符串例题

输入一个数,实现以下要求:

  • 输出数值的长度
  • 输出某个数出现的次数
  • 将这个数字反序打印

1.首先要保证数字串的左右两侧没有空格,左侧没有0,因此要使用字符串..strip().lstrip("0")
2.要确定输入的字符串为纯数字,不是纯数字就重新输入,建议使用while……break
3.关于统计某个数出现的次数,因为数字由0-9组成,因此可以形成一个数位数的列表,列表的索引代表某个数字,列表中的元素代表某个数出现的次数
4.关于排序,可以将字符串转换为列表,使用反序函数,也可使用负索引来处理,代码详见下方:

# 关于去除字符串左右的空格和右侧的0
num = input("请输入一个数字").strip().lstrip("0")

#循环判断输入的信息是否是纯数字
while 1:
    if num.isdigit():
        break
    else:
        num = input("输入错误,请输入1-9的数字")
        
#统计字符串的长度,直接使用len函数即可
print("字符串长度:{0}".format(len(num)))

#统计并打印某个数和某个数值出现的次数,有多种方式:
#方法一,使用列表的索引下标,遍历下标,打印出的结果和字符串的顺序不一样

#因为数字由0-9组成,定义列表长度为10个,每个指针代表一个数字
list_count = [0]*10
for i in range(10):
	#这里,将每个数出现的次数当做元素放在列表中,
	#i为指针,标识字符串中的某个数
    list_count[i] = data.count(str(i))
for i in range(10):
	#如果列表中某个索引(字符串0-9的某个数)的元素不是0,
	#打印这个元素出现的次数
    if list_count[i]:
        print(i,list_count[i])
        
#方法二,遍历列表中的元素,顺序正确,
#但是当字符串的数字大于10时,其进入循环的次数比较多
list_count = [0]*10
#遍历列表中的元素
for i in num:
    x = int(i)#转换成int型,当做列表的下标
    #判断,当某个索引的元素为0的时候,才会执行下面的代码,
    #因为不为0,代表这个索引的数字在前面出现过
    if list_count[x] == 0:
        list_count[x] = num.count(i)
        print(i,list_count[x])
        
#方法三:不使用count函数,遍历整个字符串,
#某个数字出现过一次,列表中这个索引代表的数值+1
#打印的顺序和输入的字符串完全一致
list_count=[0]*10
for i in num:
    x = int(i)
    #遍历整个字符串,如果某个数字出现过一次,
    #列表中这个数字索引位置上的元素+1
    list_count[x]+=1
for i in num:
    if list_count[int(i)]:
        print(i,list_count[int(i)])

#关于反转排序
#方法一:转换列表之后,使用反序函数
list_data = list(num)
list_data.reverse()
print(list_data)

#方法二:使用索引倒序,结合range函数
for i in range(len(num),0,-1):
    print(num[i-1])

#方法三:使用负索引
for i in range(0,len(num)):
	#当i=0时,打印的事-1的数值,i=1时,打印的事-2的值,因此是反序
    print(num[-i-1])

数字数据类型

1、整数(int):整数的算数运算符:

  • python中,整数可执行加(+)减(-)乘(*)除(/)模(%)
  • a+b
  • a-b
  • a*b
  • a/b
  • a%b(取余):常用于判断奇数,偶数

代码及运行结果如下

a=1
b=5
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(9%b)

在这里插入图片描述
2.浮点数 float:也可以进行算数运算符的运算,可参考整数

将数据转换为字符串类型

在写python代码的时候,例如:拼接字符串时,+两边的有一侧不是字符串类型就会报错,此时可使用str()转换一侧的数据类型为字符串,以下是运行代码及结果

msg='my name is YEZI '
message='i am a STUDENT with class python12'
a=3
str_1=msg+str(a)
print(str_1)

在这里插入图片描述

python代码的注释

  • #表示单行注释
  • 快捷键ctrl+/ 可注释代码,在选中代码后注释可注释多行,若将光标停在一行代码上,使用快捷键可注释单行。在注释后再次选中代码,使用此快捷键可取消注释
  • ‘’‘XXXXXX’''为多行注释,引号之间的内容为代码内容
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值