Python(数字类型与字符串)

数字类型

数字类型的表示方法

整形

类似1,2,0,-1这样的数据称为整形数据。在Python中可以使用4种进制表示整型,分别二进制,八进制,十进制和十六进制。

0b1010  #二进制
0o12    #八进制
0xA     #十六进制

浮点型

类似0.6,1.5这样的数据被称为浮点型数据。Python的浮点数一般以十进制形式表示,可以科学计数法。

num_one=3.14      #十进制形式表示
num_two=2e2       #科学计数法表示(2*10^2)
num_third=2e-2    #科学计数法(2*10^-2)

复数类型

类似3+j,3.2+3.5j这样的数据被称为复数
(1)复数由实数和虚部构成,其一般形式为real+imagj.
(2)实部real和虚部的imag都是浮点型。
(3)虚部必须有后缀j或J
在Python中有两种创建复数的方式:一种是按照复数的一般形式直接创建;另一种是通过内置函数complex()创建。

num_one=3+2j                 #按照复数格式使用赋值运算符直接创建
num_two=complex(3,2)         #使用内置函数complex()函数创建

布尔类型

只有两个取值:True和False。

实例1:根据身高体重计算BMI指数

BMI计算公式如下:

 体质指数(BMI)=体重(kg) /   (身高^2)(m^2)

本实例要求编写程序,实现根据输入的身高体重计算BMI值的功能

height=float(inout('请输入您的身高(m):'))
weight=float(input('请输入您的体重(kg):'))
BMI=weight/(height*height)
print("您的BMI值为:',BMI)

类型转换函数

Python内置了一系列可实现强制类型转换的函数,保证用户有需求的情况,将目标数据类型为指定的类型。

函数说明
int()将浮点型,布尔类型和符合数值类型规范的字符串转换为整形
float()将整型和符合数值类型规范的字符串转换为浮点型
str()将数值类型转换字符串
>>>  int(3.6)     #浮点型转整型,小数部分被截断
>>3
>>>  float(3)     #整型转浮点型
>3.0

在使用类型转换函数时有两点需要注意:
(1)int()函数,float()函数只能转换符合数字类型格式规范的字符串
(2)使用int()函数将浮点数转换为整数时,若有必要会发生截断(取整),而非四舍五入。

实例3:模拟超市收银抹零行为

total_money_str=str(total_money)
print('商品总金额为:',total_money,'元')
pay_money=int(total_money)  #进行抹零
pay_money_str=str(pay_money)
print('实收金额为:'+pay_money_str+'元')

字符串

字符串的定义

字符串是一种用来表示文本的数据类型。它是由符号或者数值组成的一个连续序列,Python中的字符串是不可变的,字符串一旦创建便不可修改。
(1)定义单行字符串

single_symbol='hello itcast'    #使用单引号定义字符串
double_symbol="hello itcast"    #使用双引号定义字符串

(2) 定义多行字符串
使用三引号(三个单引号或者三个双引号)定义多行字符串时,字符串中可以包含换行符,制表符或者其他特殊的字符。

three_symbol="""my name is itcast
           my name is itcast"""    #使用三引号定义字符串

输出以上使用三引号定义的字符串,输出结果如下:

my name is itcast
                 my name is itcast

定义字符串时单引号与双引号可以嵌套使用,需要注意的是,使用双引号表示的字符串中允许嵌套单引号,但不允许包含双引号。

mixture="Let's go"     #单引号双引号混合使用

此外,如果单引号或者双引号中的内容包换行符,那么字符串会被自动换行

double_symbol="hellp \nitcast"
  输出结果: hello itcast

字符串的格式化输出

Python的字符串可通过占位符%,format()方法和f-strings三种方式实现格式化输出。

1.占位符%

利用占位符%对字符串进行格式化时,Python会使用一个带有格式符的字符串作为模板,这个格式符用于为真实值预留位置

>>>name='李强‘
>>>'你好,我叫%s' % name
>'你好,我叫李强’

一个字符串中同时可以含有多个占位符。

>>>name='李强'
>>>age=12
>>>'你好,我叫%s,今年我%d岁了。' %(name,age)
>'你好,我叫李强,今年我12岁'
  上述代码首先定义了变量name与age,然后使用两个占位符%进行格式化输出,因为需要对两个变量进行格式化输出,所以可以使用“()”将这两个变量存储起来

2. format()方法

format()方法同样可以对字符串进行格式化输出,与占位符%不同的是,使用format()方法不需要关注变量的类型。

   format()方法的基本使用格式如下:
   <字符串>.format(<参数列表>)

在format()方法中使用"{}"为变量预留位置。例如:

>>>name='李强'
>>>age=12
>>>'你好,我的名字是:{},今年我{}岁了。‘.format(name,age)
>'你好,我的名字是:李强,今年我12岁了。'

(1)保留n位小数。使用format()方法可以保留浮点数的n位小数,其格式为“{:.nf}”,其中n表示保留的小数位数。

>>>pi=3.1415
>>>'{:>2f}'.format(pi)
>'3.14'
 上述实例代码中,使用format()方法保留变量pi的两位小数,其中“{:.2f}"可以分为”{:}“与".2f",{:}表示获取变量pi的值

(2)数字补齐。使用format()方法可以对数字进行补齐,其格式为“{:m>nd}",其中m表示补齐的数字,n表示补齐后数字的长度。

>>>num=0.1
>>>'{:.0%}'.format(num)
>'001'

上述示例代码中,使用format()方法对变量num的值进行补"0"操作,其中"{:0>3d}“的“0”表示要补的数字,”>"表示在原数字左侧进行补充,“3”表示补充后数字的长度

f-strings

f-strings在格式上以f或F引领字符串,字符串中使用{}标明被格式化的变量。f-strings本质上不再是字符串常量,而是在运行时运算求值的表达式。

>>> address='河北'
>>>f'欢迎来到{addess}'
>'欢迎来到河北.'

使用f-string还可以进行多个变量格式化输出

>>>name='张天'
>>>age=20
>>>gender='男'
>>>f'我的名字是{name},今天{age}岁了,我的性别是{gender}。‘
>’我的名字是张天,今年20岁了,我的性别是男.'

字符串的常见操作

字符串拼接

字符串的拼接可以直接使用“+”符号实现。

>>>str_one='人生苦短,‘
>>>str_two='我用Python’
>>>str_one+str_two
>'人生苦短,我用Python。'

字符串替换

字符串replace()方法可使用新的子串替换目标字符串中原有的字串

 str.replace(old,new,count=None)

上述语法中,参数old表示原有子串表示新的子串;参数count用于设置替换次数。

>>>word='我是小明,我今年28岁'
>>>word.replace('我','他')
>'他是小明,他今年28岁'
>>>word.replace('我','他',1)
>'他是小明,我今年28岁'

如果在字符串中没有找到匹配的子串,会直接返回原字符串。

字符串分割

字符串的split()方法可以使用分隔符把字符串分割成序列,

  str.split(sep=None,maxsplit=-1)

在上述语法中,sep默认为空字符,包括空格,换行,制表符。

>>>word="1 2 3 4 5"
>>>word.split()
>['1','2','3','4','5']
>>>word="a,b,c,d,e"
>>>word.split(",")
>['a','b','c','d','e']
>>>word.split(",",3)
>['a','b','c','d,e']

去除字符串两侧空格

字符串对象的strip()方法一般用于去除字符串两侧的空格,

str.strip(chars=None)

strip()方法的参数chars用于设置要去除的字符,默认要去除的字符为空格

>>>word="Strip"
>>>word.strip()
>'Strip'
>>>word="**Strip**"
>>>word.strip("*")
>'Strip'

字符串的索引与切片

索引

字符串是一个由元素组成的序列,每个元素所处的位置是固定的,并且对应着一个位置编号,编号从0开始,依次递增1,这个位置编号被称为索引或者下标

在这里插入图片描述
在这里插入图片描述
通过索引可以获取指定位置的字符,语法格式

字符串[索引]

假设变量str_python的值"python",使用正向索引和反向索引获取该变量中的字符"p"。例如:

str_python[0]
str_python[-6]

需要注意的是,当使用索引访问字符串值时,索引的范围不能越界,否则程序会报索引越界的异常。

切片

切片用于截取目标对象中一部分,其语法格式如下:

 [起始:结束:步长]

切片的默认步长为1。需要注意的是,切片选取的区间属于左闭右开型,切下的子串包含起始位,但不包含结束位。

string[0:4:2]
'pt'

实例3:文本进度条

进度条以动态方式时显示计算机处理任务时的进度,它一般由已完成任务量与剩余未完成任务量的大小组成。

import time
 incomplete_sign=50 #数量
 print('='*23+'开始下载'+'='*25)
 for i in range(incomplete_sign+1):
     completed="*"*i #表示已完成
     incomplete="."*(incomplete_sign-i)*100
     percentage=(i/incomplete_sign)*100
     print("\r{:.0f}%[{}{}]".format(percentage,completed,incomplete),end="")
     time.sleep(0.5)
    print("\n"+'='*23+'下载完成'+'='*25)

运算符

算术运算符

Python中的算术运算符包括+,-,*,、,、、,%和**,这些运算符都是双目运算符,一个运算符可以和两个操作数组成一个表达式。

运算符功能
+加:使两个操作数相加,获取操作数的和
-减:使两个操作数相减,获取操作数的差
*乘:使两个操作数相乘,获取操作数的积
/除:使两个操作数相除,获取操作数的商
//整除:使两个操作数相除,获取商的整数部分
%取余:使两个操作数相除,获取余数

无论参加运算的操作数是什么类型,解释器都能给出运算后的正确结果,这是因为Python在对不同类型的对象时,会强制将对象的类型进行临时类型转换。
(1)布尔类型在进行算术运算时,被视为数值0或1
(2)整型与浮点型运算时,将整型转化为浮点型
(3)其他类型与复数运算时,将其他类型转换为复数类型

比较运算符

Python中的比较运算有:==,!=,<,>,>=,<=,比较运算符同样是双目运算符,它与两个操作数构成一个表达式。

运算符功能
==比较左值和右值,若相同则为真,否则为假
!=比较左值和右值,若不相同则为真,否则为假
>比较左值和右值,若左值大于右值为真,否则为假
<比较左值和右值,若左值小于右值则为真,否则为假

赋值运算符

赋值运算符:将一个表达式或对象赋给一个左值,其中左值必须是一个可修改的值,不能为一个常量。

运算符功能
=等:将右值给左值
+=加等:使右值与左值相加,将和赋给左值
-=减等:使右值与左值相减,将和赋给左值
*=乘等:使右值与左值相乘,将积赋给左值
/=除等:使右值与左值相除,将商的整数部分赋给左值
%=取余等:使右值与左值相除,将余数赋给左值
**=幂等:获取左值的右值次方,将结束赋给左值

实例5:判断水仙花数

水仙花数是一个3位数,它的每位数字的3次幂之和等于它本身。

 num3=int(input("请输入一个三位数:"))
 hundreds_place=int(num3//100%10)#百位
 ten_place=int(num3/10%10)#十位
 one_place=int(num3%10)#个位
 if hundreds_place**3+ten_place**3+one_place**3==num3:
     print(f"{num3}是水仙花数")
 else:
     print(f"{num3}不是水仙花数")
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿在线码字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值