类似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。
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()函数将浮点数转换为整数时,若有必要会发生截断(取整),而非四舍五入。
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三种方式实现格式化输出。
利用占位符%对字符串进行格式化时,Python会使用一个带有格式符的字符串作为模板,这个格式符用于为真实值预留位置
>>>name='李强‘
>>>'你好,我叫%s' % name
>'你好,我叫李强’
一个字符串中同时可以含有多个占位符。
>>>name='李强'
>>>age=12
>>>'你好,我叫%s,今年我%d岁了。' %(name,age)
>'你好,我叫李强,今年我12岁'
上述代码首先定义了变量name与age,然后使用两个占位符%进行格式化输出,因为需要对两个变量进行格式化输出,所以可以使用“()”将这两个变量存储起来
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或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'
进度条以动态方式时显示计算机处理任务时的进度,它一般由已完成任务量与剩余未完成任务量的大小组成。
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中的比较运算有:==,!=,<,>,>=,<=,比较运算符同样是双目运算符,它与两个操作数构成一个表达式。
运算符 | 功能 |
---|---|
== | 比较左值和右值,若相同则为真,否则为假 |
!= | 比较左值和右值,若不相同则为真,否则为假 |
> | 比较左值和右值,若左值大于右值为真,否则为假 |
< | 比较左值和右值,若左值小于右值则为真,否则为假 |
赋值运算符:将一个表达式或对象赋给一个左值,其中左值必须是一个可修改的值,不能为一个常量。
运算符 | 功能 |
---|---|
= | 等:将右值给左值 |
+= | 加等:使右值与左值相加,将和赋给左值 |
-= | 减等:使右值与左值相减,将和赋给左值 |
*= | 乘等:使右值与左值相乘,将积赋给左值 |
/= | 除等:使右值与左值相除,将商的整数部分赋给左值 |
%= | 取余等:使右值与左值相除,将余数赋给左值 |
**= | 幂等:获取左值的右值次方,将结束赋给左值 |
水仙花数是一个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}不是水仙花数")