第二部分 变量和简单的数据类型
2.4 数
编程中,定义一个数指的是给一个变量赋予一个特定的数值。在计算机编程中,变量是用来存储和表示数据的容器。通过定义一个数,我们可以在程序中使用这个数进行各种计算和操作。
在大多数编程语言中,定义一个数的方式通常是通过声明变量并给变量赋值来实现。
2.4.1 整数
在Python中,可对整数(integer)执行加(+)减(-)乘(*)除(/)运算;
程序:
print(1+2-3/4*5); # 四则运算 -0.75
print(3+5); # 加法运算 8
print(2**3);# **代表的是乘方运算 8
print(3/4); # 除运算 0.75
print(8*9); # 乘运算 72
输出结果:
-0.75
8
8
0.75
72
注意:Python还支持运算顺序,即先乘除后加减。
2.4.2 浮点数
在Python中,带小数点的数称为浮点数。浮点型由整数部分与小数部分组成。
程序:
number = 9.0
result = number * 10
print(number);#结果为9.0
print(result);#结果为90.0
2.4.3 整数和浮点数
在Python中,将任意两个数相除,结果总是浮点数,即便这两个数都是整数且能够整除。
程序:
number = 9
a = 10
b = 5
print(a / number) #1.1111111111111112
print(a / b) #2.0
在其他任何运算中,如果一个操作数是整数,另一个操作数是浮点数,则结果也是浮点数。在Python中,无论那种运算,只要有操作数是浮点数,默认得到的就总是浮点数,即使最后得到的结果为整数。
2.4.4 数中的下划线
在书写很大的数时,可使用下划线对其中的位进行分组,使其更清晰易读:
程序:
number = 14_0000_0000_0000
print(number); #输出 14000000000000
2.4.5 总结
Python 数字类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
- int(x) 将x转换为一个整数。
- float(x) 将x转换到一个浮点数。
- complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
- complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
程序:
number = '9'
print(int(number)); #将number转换为整数
print(float(number)); #将number转换为浮点数
print(complex(number)); #将number转换为复数
数学函数:
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 以浮点数形式返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,…) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,…) | 返回给定参数的最小值,参数可以为序列。 |
modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) | x**y 运算后的值。 |
round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 |
sqrt(x) | 返回数字x的平方根。 |
程序:
print(abs(-10)); #返回数字的绝对值 10
print(math.ceil(4.4)); #返回数字的上入整数 5
print(math.exp(2)); #返回e的x次幂(e的x幂) 7.38905609893065
print(math.fabs(-10)); #以浮点数形式返回数字的绝对值 -10
print(math.floor(5.2)); #返回数字的下舍整数 5
print(math.log(100,10)); #结果为2
print(math.log(10,100)); #结果为0.5
print(math.log10(100)); #结果为2.0
print(max(4,20)); #结果为20
print(min(2,20)); #结果为2
print(math.modf(3.5)); #结果为(0.5, 3.0)
print(math.pow(2,3)); #结果为8.0,2的三次方
print(round(3.2)); #结果为3,四舍五入
print(math.sqrt(5)); #结果为2.23606797749979,返回5的平方根
三角函数:
Python包括以下三角函数:
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x, y) | 返回欧几里德范数 sqrt(xx + yy)。 |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度转换为弧度 |
程序:
print(math.acos(0.5)); #返回0.5的反余弦弧度值。 1.0471975511965979
print(math.asin(0.5)); #返回0.5的反正弦弧度值。 0.5235987755982989
print(math.atan(0.5)); #返回x的反正切弧度值。 0.4636476090008061
print(math.atan2(30,60)); #返回给定的 30 及 60 坐标值的反正切值。0.4636476090008061
print(math.sin(0.5)); #返回0.5的正弦值 0.479425538604203
print(math.cos(0.5)); #返回0.5的余弦值 0.8775825618903728
print(math.tan(0.5)); #返回0.5的正切值 0.5463024898437905
print(math.hypot(2,3)) #返回欧几里德范数 sqrt(2*2 + 3*3)。 3.605551275463989
print(math.degrees(30)) #1718.8733853924696
print(math.degrees(math.pi/2)) #90.0
print(math.radians(30)) #将角度转换为弧度 0.5235987755982988
数学常量:
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数)。 |
2.5 注释
在Python中,注释是一种很有用的功能,让你能够使用自然语言在程序中添加说明。
Python 中的注释有单行注释和多行注释。
Python 中单行注释以 *#* 开头,例如:
# 这是一个注释
多行注释:
在 Python中,多行字符串(由三个单引号 ‘’’ 或三个双引号 “”" 包围的文本块)在某些情况下可以被视为一种实现多行注释的技巧。
多行注释用三个单引号 *‘’'* 或者三个双引号 *“”"* 将注释括起来,例如:
1、单引号(‘’')
#!/usr/bin/python3
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello, World!")
2、双引号(“”")
#!/usr/bin/python3
"""
这是多行注释(字符串),用三个双引号
这是多行注释(字符串),用三个双引号
这是多行注释(字符串),用三个双引号
"""
print("Hello, World!")
注意:虽然多行字符串在这里被当作多行注释使用,但它实际上是一个字符串,我们只要不使用它,它不会影响程序的运行。
这些字符串在代码中可以被放置在一些位置,而不引起实际的执行,从而达到注释的效果。
拓展说明:
在 Python 中,多行注释是由三个单引号 ‘’’ 或三个双引号 “”" 来定义的,而且这种注释方式并不能嵌套使用。
当你开始一个多行注释块时,Python 会一直将后续的行都当作注释,直到遇到另一组三个单引号或三个双引号。
2.6 Python之 禅
程序:import this
import this
结果:
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
翻译解释:
美丽胜过丑陋。
显式优于隐式。
简单胜于复杂。
复杂总比隐晦好
扁平比嵌套好。
稀疏胜于稠密。
可读性很重要。
特殊情况不足以打破规则。
虽然实用性胜过纯粹性。
错误永远不应该悄无声息地过去。
除非明确沉默。
面对歧义,拒绝猜测的诱惑。
应该有一个——最好只有一个——明显的方法来做到这一点。
虽然这种方式一开始可能并不明显,除非你是荷兰人。
现在总比从来没有好。
虽然从来没有比现在更好。
如果实现很难解释,那是个坏主意。
如果实现很容易解释,那可能是个好主意。
命名空间是一个很棒的想法——让我们做更多这样的事情!
万事万物都具有对立面,我们在进行程序编写的时候,切记它的指导规则,这样我们便可以编写漂亮且优雅的代码,而程序编写的最终目的解决问题,我们需要做的是,利用它的指导规则,设计高效、良好且漂亮的解决方案。而现实是复杂的,有时候可能没有简单的解决方案,在这种情况下,就选择最简单的可行解决方案即可。
以上的内容,是本人自学Python,写的笔记,如有错误,请留言哦!!!