Python Class 02-数字类型

 打印关键字

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del',
 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 
'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> 

整数的类型 

>>> (0x3F2+1010)/0o1762
2.0
>>> 0b1010+0x1010+0o1010+1010
5652
>>> 0x1010>0o1010
True
>>> 0x1010==4112
True

浮点数的精度  浮点数之间的区分的精度大约为2.22e-16 

>>> 1.01+2.03
3.04
>>> 1234567890.987654321*1234567890.987654321
1.5241578774577044e+18
>>> 9876543210.123456789/1234567890.987654321
8.000000066600002

整数的浮点数值相同,幂运算的精度不同 

>>> pow(1010,32)
1374940678531097054162291350571104044956417832049380936096496320100000000000000000000000000000000
>>> pow(1010.0,32)
1.3749406785310972e+96

不确定尾数问题 

>>> 0.1+0.2
0.30000000000000004
>>> 0.1+0.2==0.3
False

 用round()函数控制精度

>>> round(1.2346,2)
1.23
>>> round(1.2346,3)
1.235
>>> round(0.1+0.2,3)
0.3
>>> round(0.1+0.2,3)==0.3
True

复数类型

>>> (1.23e4+5.67e4j).real
12300.0
>>> (1.23e4+5.67e4j).imag
56700.0
>>> 1.23e4+5.67e4j.imag
69000.0

布尔类型 

>>> x=0
>>> bool(x),type(x)
(<class 'int'>,False)
>>> x=0.0
>>> type(x),bool(x)
(<class 'float'>, False)
>>> x=0.0+0j
>>> type(x),bool(x)
(<class 'complex'>, False)
>>> x=''
>>> type(x),bool(x)
(<class 'str'>, False)
>>> x=[]
>>> type(x),bool(x)
(<class 'list'>, False)
>>> x={}
>>> type(x),bool(x)
(<class 'dict'>, False)
>>> x=()
>>> type(x),bool(x)
(<class 'tuple'>, False)

类型判断和类型间的转换  type()    在条件判断中使用变量类型为条件type() 函数可以直接使用   int(x)  float() str()

>>> type(10.10)
<class 'float'>
>>> type(1010)
<class 'int'>
>>> type(0x1010)
<class 'int'>
>>> type('10.10')
<class 'str'>
>>> type([10,1.0])
<class 'list'>
a=eval(input("输入一个数字:"))
if type(a)==type(123):
    print("输入的是整数。")
elif type(a)==type(12.3):
    print("输入的是小数。")
else:
    print("无法判断输入类型。")
>>> int(10.123)
10
>>> int('123')
123
>>> float(10)
10.0
>>> float('123')
123.0
>>> str(10.123)
'10.123'
>>> str(1010+101)
'1111'

算术运算符:+、-、*、/、//、**

>>> 1.23e4+5.67e4
69000.0
>>> 1.23e4-5.67e4
-44400.0
>>> 1.23e4*5.67e4
697410000.0
>>> 1010/3
336.6666666666667
>>> 1010//3
336
>>> 1010%3
2
>>> +1010
1010
>>> -1010
-1010
>>> 1010**3
1030301000

运算可能改变数据的类型 

>>> 1010/10
101.0
>>> 1010.0/3
336.6666666666667
>>> 1010.0%3
2.0
>>> 10-(1+1j)
(9-1j)

比较运算符:> 、< 、>=、 <=、==、 != 

>>> x='hello'
>>> y='python'
>>> x==y
False
>>> len(x)<len(y)
True
>>> x!=y
True

逻辑运算符:and、or、not

>>> x=12
>>> y=0
>>> x and y
0
>>> x or y
12
>>> not x
False
>>> not y
True

赋值运算符:=  

>>> x=5
>>> x=x+1
>>> x=y=z=5
>>> x,y,z=3,4,5

增强赋值操作符:+= 、-= 、*=、 /= 、//=、 %= 、**=

>>> x=9
>>> x**=3  #x=x**3
>>> print(x)
729
>>> x+=1  #x=x+3
>>> print(x)
730
>>> x%=8  #x=x%3
>>> print(x)
2

位运算符:&按位与、|按位或、^按位异或、~按位取反、>>按位右移、<< 按位左移

>>> a=6
>>> b=2
>>> a&b   #0110&0010=0010 按位与:同为1为1,否则为0
2
>>> a|b   #0110|0010=0110 按位或:有1个为1即为1,否则为0
6
>>> a^b   #0110^0010=0100 按位异或:不同为1,相同为0
4
>>> ~a    #~00000110=11111001 按位取反
-7
>>> a>>b   #0110右移2位0001
1
>>> a<<b   #0110左移2位11000
24

运算符的优先级:

>>> x=10
>>> y=20
>>> m=3.0
>>> n=8.2
>>> b=x+y>x-y*-1 and m<n%3
>>> b
False
>>> b=((x+y)>(x-y*(-1))) and (m<(n%3))
>>> b
False

数值运算函数

abs(x)函数

>>> abs(-30)
30
>>> abs(-30+40j)
50.0

divmod(x,y)函数

>>> divmod(100,9)
(11, 1)
>>> a,b=divmod(100,9)
>>> a
11
>>> b
1

pow(x,y)函数

>>> pow(10,2)
100
>>> pow(0x1010,0b1010)
1382073245479425468920150911010996224
>>> pow(55,1999999,10000)
4375

round(x)函数 

>>> round(1.4)
1
>>> round(0.5)
0
>>> round(1.5)
2
>>> round(0.50001)
1
>>> round(3.1415926,3)
3.142

min()和max()函数 

>>> min(1,2,3,4,5,0.1)
0.1
>>> max(1,2,3,4,5,0.1)
5

小作业:

1、提示用户输入姓名、年龄、电话、地址等信息。输出该用户的个人资料。

name=input("输入你的姓名:")
age=input("输入你的年龄:")
phone=input("输入你的电话:")
add=input("输入你的地址:")
print("{}今年{}岁,住在{},联系电话是:{}。".format(name,age,add,phone))

2、输入两个正整数A和B,试交换A、B的值(使A的值等于B,B的值等于A)。

a=eval(input("输入一个正整数:"))
b=eval(input("输入一个正整数:"))
print("a={} b={}".format(a,b))
c=a;a=b;b=c
print("a={} b={}".format(a,b))

3.输入三角形的边长和高,计算并输出三角形的面积。

a=eval(input("输入边长:"))
h=eval(input("输入高:"))
print("s={:.3f}".format(a*h/2))

4.输入三科成绩值,计算平均值和总分。

a=eval(input("输入语文成绩:"))
b=eval(input("输入数学成绩:"))
c=eval(input("输入英语成绩:"))
print("s={:.3f}".format((a+b+c)/3))

5、输入半径r,求圆的周长及面积。

PI=.1415926
r=eval(input("圆的半径:"))
print("周长={:.3f} 面积={:.3f}".format((2*PI*r),(PI*r*r)))

6、获得用户输入的一个正整数N,计算并输出N的32次方。

n=eval(input("输入一个正整数:"))
print("{}的32次方是:{}".format(n,pow(n,32)))

7、获得用户输入的一个合法算式,例如:1.2+3.4,输出运算结果。

n=eval(input("输入一个算式:"))
print(n)

8、获得用户输入的一个小数,提取并输出其整数部分。

n=eval(input("输入一个小数:"))
print("{}的整数部分为:{}".format(n,(int)(n)))

9、输入底面半径r和高h,输出圆柱体的表面积,保留3位小数,格式见样例。   样例输入:3.5  9   样例输出:274.889

PI=3.1415926
r=eval(input("输入圆柱体的底面半径:"))
h=eval(input("输入圆柱体的高:"))
s=2*PI*r*r+2*PI*r*h
print("该圆柱体的表面积为:%.3f"%s)

10.输入圆椎体的底面半径和高,计算圆椎体体系积。圆锥体体积的公式v=math.pi*r*r*h/3。

import math
r=eval(input("输入圆锥体的底面半径:"))
h=eval(input("输入圆锥体的高:"))
v=math.pi*r*r*h/3
print("该圆锥体的体积为:%.3f"%v)

11.输入存款金额和存款年限(n),计算收益。其中,默认利率为5.2%。  收益=金额x(1+利率)^n

import math
m=eval(input("输入存款金额:"))
n=eval(input("输入存款年限:"))
s=m*pow((1+0.052),n)
print("收益为:%.3f"%s)

12、数学中经典的“鸡兔同笼”问题,已知头共30个,脚共90只,问笼中的鸡和兔各有多少只?

t=(90-30*2)/2
j=30-t
print("鸡:{}  兔:{}".format((int)(j),(int)(t)))

13、某幼儿园里,有5个小朋友编号为1,2,3,4,5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果。输入:8 9 10 11 12     输出:11 7 9 11 6

a=eval(input())
b=eval(input())
c=eval(input())
d=eval(input())
e=eval(input())
a=(int)(a/3);b+=a;e+=a
b=(int)(b/3);a+=b;c+=b
c=(int)(c/3);b+=c;d+=c
d=(int)(d/3);c+=d;e+=d
e=(int)(e/3);d+=e;a+=e
print("a:{} b:{} c:{} d:{} e:{}".format(a,b,c,d,e))

14、输入一个三位数,要求把这个数的百位数与个位数对调,输出对调后的数。输入:234 输出:n=432

n=eval(input("输入一个三位数:"))
a=(int)(n/100)
b=(int)(n/10%10)
c=(int)(n%10)
print("%d"%(a+b*10+c*100))

 15、已知某班有男同学x位,女同学y位,x位男生平均分是87分,y位女生的平均分是85,问全体同学平均分是多少分?

x=eval(input("输入男同学人数:"))
y=eval(input("输入女同学人数:"))
n=(x*87+y*85)/(x+y)
print("全体平均成绩为:%.3f"%n)

16.歌手大奖赛上6名评委给一位参赛者打分,6个人打分的平均分为9.6分;如果去掉一个最高分,这名参赛者的平均分为9.4分;如果去掉一个最低分,这名参赛者的平均分为9.8分;如果去掉一个最高分和一个最低分,这名参赛者的平均是多少?运行结果: 9.60     

n=(9.6*6-(9.6*6-9.4*5)-(9.6*6-9.8*5))/4
print("全体平均成绩为:%.2f"%n)

17、传说古代的叙拉古国王海伦二世发现的公式,利用三角形的三条边长来求取三角形面积。已知△ABC中的三边长分别为a,b,c,求△ABC的面积。     (提示:海伦公式:p=(a+b+c)/2,S=sqrt(p(p-a)(p-b)(p-c)))   输入:3 4 5    输出:6.000

import math
a=eval(input("输入边长a:"))
b=eval(input("输入边长b:"))
c=eval(input("输入边长c:"))
p=(a+b+c)/2
s=math.sqrt(p*(p-a)*(p-b)*(p-c))
print("全体平均成绩为:%.2f"%s)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宏阳李老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值