数据类型_非序列/字典
1.数值类型
整数、浮点数、复数,进制数
基本运算:
+、-、*、/、//、%、divmod(x,y)、**
pow():求幂,pow(2,3)=8
abs():绝对值
round():四舍五入
int():取整,只保留整数部分
float():转换成浮点数
oct():十进制转成八进制
hex():十进制转成十六进制
bin():十进制转成二进制
int(x,base=10):转十进制
divmod(x,y)–> x//y,x%y
整数和浮点数运算,结果是浮点数
/:真除法,结果是浮点数
//:整除法,也叫floor除法,结果是整数(去掉除法运算后的小数位,不四舍五入)
判断浮点数是否是整数:
import math
a=3.0
print(a.is_integer()) #->True
2、布尔类型
True&False
0为假,非0为真
空为假,非空为真
空字符串,空列表,空元祖等都是假值
None为假
Python中任何一个数据对象,要么是True,要么是False
bool()函数测试数据对象或表达式是True还是False
bool(2) #True
bool(0) #False
3、None
一种特殊的数据对象,在内存中有自己的内存地址,且全局只有一个None对象
运算
1、逻辑运算
and,or,not
and和or,从左到右运算符号返回参与比较的表达式的最终运算结果,不是返回True或false
and:如果所有表达式为真,则返回最后一个表达式; 否则返回第一个假值
or:如果有一个为真,则立刻返回该值;否则,返回最后一个表达式
print(2 and 3)#-->3
and、or进行赋值操作
a= a or 'hhhh' #如果a为真,则a不变;否则,a就赋值为'hhhh'
A= x or y or z #如果x为真,则A=x;否则判断y,如果y为真,则A=y;否则A=z
# x y z是值或表达式
2、not运算
真假取反,返回True/False
3、比较运算
同类型、内置类型(字典除外)比较大小
[1,2,[3,4]]>[1,2,[3,3]]#从左开始,一个一个元素向后比较,如果中级有嵌套,也会递归到内层结构去一个个比较
None对象只能参与等值或不等值比较,如if a is None
支持连续比较,a>b>c
12<3 #等价于12 and 2<3
4、is和==
==或!=:比较数值
is:比较的是内存地址
练习题
1、输入一个正整数 判断是几位数 并依次打印 个位 十位 百位…
a = input()
b = len(a)
a=int(a)
for i in range(b):
n=a%10
a=a//10
print(n)
print('{}位数'.format(b))
2、输入一个正整数 判断是几位数 并依次打印万位 千位 百位…
a = input()
b = len(a)
#print(a)
a=int(a)
for i in range(b):
m=a//10**(b-i-1)
n=a%10**(b-i-1)
a=n
print(m)
print('{}位数'.format(b))
3、求100以内所有奇数的和
sum=0
for i in range(1,100,2):
sum +=i
print(sum)
4、判断学生成绩
score=int(input())
if score>=0 and score<=100:
if score>=90:
print('A')
elif score>=80:
print('B')
elif score>=70:
print('C')
elif score>=60:
print('D')
else:
print('E')
else:
print('请输入合法数字')
5、求1到5阶乘之和
sum=0
fac=1
for i in range(1,6):
fac*=i
sum+=fac
print(sum)
6、给一个半径,求圆的面积和周长
R=float(input())
R=int(R) #a='3.5' 不能直接将浮点的字符串转换成int,只能先转换成float 再转换成int
square=(R**2)*3.14
line=2*3.14*R
print(square,line)
print(int(a))
7、请输入若干个整数,打印出最大值
max=0
while True:
m=input()
if m: #判断m是不是空(目前只做这个校验)
m=int(m)
if m>max:
max=m
print(max)
else:
print('输入不合法,请重新输入')
break
8、请输入若干个整数 求平均值
sum=0
count=0
while True:
m=input()
if m:
m=int(m)
sum+=m
count+=1
avg=sum/count
print(sum,count,avg)
else:
print('输入不合法')
break