python 数字运算及格式化_Python基础教程(3)Python数据类型、运算与格式化

一、Python的数据类型

主要分为了数字型和非数字型两个大类,其中数字型又包含整形(int)、浮点型(float)、布尔型(bool),而非数字分为字符串(str)、列表(list)、元组(tuple)、字典(dictionary)。非数字类型里除了字符串,其他类型又都属于数据集合,可以存放多个数据

二、Python数字型数据介绍

1、整型(int):正整数和负整数,不带小数点。比如100、-1,整型数据可参与运算。只有一个bit_length()方法。

num1 = 100

print ((type)num1)

num2 = -15

print ((type)num2)

2、浮点型(float):有小数点的数据,如3.1415

num1 = 3.14

print ((type)num2) #显示为float类型

3、布尔型(bool):特殊的整型,True为1,False为0,通常在程序中用来做判断。没有内置函数。

三、Python非数字型数据介绍

1、字符串型(str):用引号括起来的都属于字符串,单引号双引号都可以,如"你好"、"linuxe"、'3'。数字可以是字符串类型,但不可参与运算;通过注释的方式可以将文本格式化输出,类似Shell中的EOF;如果想打印引号本身使用反斜线\进行转义;字符串支持+和*进行运算,只不过+的作用是连接2个字符串,而*是字符串的次数。字符串常用方法可以参考《Python常用方法——字符串常用方法》。

print(19+"1") #会报错

name = """wo shi tanglu

wo shi tanglu

woshi tanglu

"""

2、列表list:存放了一组有序、可变的数据集合,用中括号表示列表,每个元素用逗号分割,列表支持多种数据与多层嵌套。列表

list01 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

# 下标 0 1 2 3 4 5 6 7 8 9

# 反序 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

print(list01[0]) # 访问第一个元素

print(list01[-1]) # 访问最后一个元素

print(list01[3:])

print(list01[:3]) # 从第一个元素到下标为3-1的元素

print(list01[3:8]) # 从第3个元素开始到下标为8-1的元素结束

print(list01[-3:]) # 每次递增1个

print(list01[:-3]) # 从第一个元素开始到-3-1的元素结束

print(list01[-3:-8]) # 每次递增1个

print(list01[-3:-8:-1]) #从-3开始到-8-(-1)=-8+1=-7

name = ["tanglu","tom","jerry"]

print (name[0]) #输出结果是tanglu

print (name[-1]) #-1代表最后一个元素,输出jerry

name[0] = 'Tanglu' #修改列表中第一个元素

del name[1] #删除列表中索引为1的元素

#列表嵌套与元素获取,如果使用下标并带有冒号,那么获取的数据依然是列表的形式,否则为字符串

test_list = ["周润发", "周星驰", "周笔畅", "周公瑾", ["九品芝麻官", ["吴孟达", "alex", "林雪"],"算死草", "赌侠", "赌圣", "整蛊专家"]]

print (test_list[4][1][0]) #结果是吴孟达

3、元组tuple:一种有序的集合,但是无法对其中的元素做修改,可以看作是只读的列表。用小括号表示元组,如果只有一个元素的话需要加逗号来表示。如果已经明确数据不会发生变化的话,推荐使用元组类型的数据。

tuple = (1,2,3,'linuxe')

tuple2 = (1,) #只有一个元素的元组结尾需要加逗号

tuple3=tuple(list1) #使用tuple()将列表转为元组

4、字典dict/哈希表:无序,大量的关系型数据存放在字典中,查找速度快于列表,字典以键值形式存储数据,查找或者添加元素时使用的是key,而不是下标,这有点像Redis中的Hash数据

info = {'name':'tanglu','age':'18'} #如果键已存在会更新,不存在则创建

info["id"] = "1" #添加或者修改一个元素

print (info['name']) #输出tanglu

print (info.keys()) #使用key函数获取字典中所有的key

print (info.values()) #values函数获取所有值

print (info.items()) #items函数获取所有键值

#示例,结合items()遍历字典中并传送给2个变量

for key,value in dict1.items():

if value >90:

print (key)

5、集合:和字典定义方式一样使用花括号,但是不用写value。元素不能重复,如果有重复元素会被删掉。可以用他来快速将列表进行去重

s1=set() #定义空集合只能使用set()

s2={1,3,7} #创建集合

s2.add('9') #为集合添加数据

s2.update(t1) #为集合添加数据,数据从t1这个列表获取,并且会自动拆包,如果用add的话少了拆的步骤

6、使用type()函数查看数据类型:

a = 3

print (type(a))

四、Python的数学运算与逻辑运算。需要留意各种运算符的优先级,算数运算符>比较运算符>等于运算符>逻辑运算符

#算术运算符:加减乘除取余取模

print (3+5)

print (5-1)

print (3*4)

print (12/4)

print (10//3) #商数取整,这里就是3

print (13%4) #取余数.这里就是1

#赋值运算符:+=、-=等,会把结果赋值给变量

b=2

a=3

b+=a #结果为5,等值于b=b+a

#比较运算符:==、!=、>、=、<=,返回结果为布尔值

#逻辑运算符:and、or、not,运算顺序优先级是( ) > not > and > or

print (2>3 and 4<6) #and需要所有条件为真,所以这里输出为False

print (10<6 or 9>7 or 5>9) #有一个条件为真即为真,所以这里输出True

#成员运算符:in、not in,判断一个元素是否在一组列表中,返回结果为布尔值

a=1

a in [1,2,3,4,5]

#身份运算符:is、is not,和==不同,它比较的是内存空间中的地址是否相等

五、int数据类型的常用方法

1、整型数据常用方法:max、min、abs

print(max(2,4,6,8,10))

print(min(2,4,6,8,10))

2、浮点型数据常用方法:round、math.modf(分别显示小数位和整数位)

num = 3.1415926

print(round(num,2)) #四舍五入保留小数点后2位

六、数据类型的转换

在引用变量时经常会因为数据类型不同出现各种错误,如字符串变量无法做运算、数字类型变量无法直接输出。所以在明确是需要做什么操作之后,可以将变量的数据类型进行转换

print (10+int("20")) #将字符串转换为整型

print (float("123.456")+11.22) #将字符串转换为浮点数

print (str(10)+"20") #将数字转换为字符串

num1 = 10 num2 = '20'

print(num1+int(num2))

name = 'tanglu' age = 18

print('hello:'+name+',you are:'+str(age))

七、基本格式化输出。

1、使用占位符进行格式化输出

使用占位符%加上特定字母可以进行简单格式化输出,常用于在字符串中引用变量:

%s:字符串

%d:数字

name = 'tanglu'

age = 18

print ("我叫%s,我今年%d" %(name,age))

%10s:字符串右对齐,占位符10位

%-10s:字符串左对齐,占位符10位

%.2s:截取2位字符串

%f:浮点数,默认保留小数点后6位数字,可以使用%.3f这样的形式来保留3位小数

num1 = 100

num2 = 200

print("十进制输出:%d,%d" %(num1,num2))

num3 = 3.1415926

print("浮点数输出:%.2f" %(num3))

str1 = "www.linuxe.cn"

print("s的标准输出:%s" %str1)

print("取出前三位:%.3s" %str1)

如果要输出百分号本身的话需要用2个%,而不能用反斜线。看例子更容易明白

name = input("请输入你的名字:")

age = input("请输入你的年龄:")

height = input("请输入你的身高:")

msg = "你的姓名是:%s,年龄:%s,身高:%s,学习进度:5%%" %(name,age,height)

print(msg)

2、使用format()格式化输出

相对基本格式化输出采用%的方法,format()功能更强大,也是以后主要使用的方法。该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号'{}'作为特殊字符代替'%' ,大括号中可以使用索引的编号或者关键字实现类似后项引用的功能

print ('{} {}'.format('hello','world'))

print ('{0} {1}'.format('hello','world'))

print ('{0} {1} {0}'.format('hello','world'))

print ('{1} {1} {0}'.format('hello','world'))

print ('{a} {tom} {a}'.format(tom='hello',a='world'))

#输出结果依次是

#hello world

#hello world

#hello world hello

#world world hello

#world hello world

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值