2.2 数字
Python控制台可以直接输入用于计算的表达式,等价于一个计算器。
2.2.1 基础知识
在Python语言中,数字分为整数和浮点数,整数没有小数点,浮点数含有小数点。不管分子和分母是整数还是浮点数,使用除法(/)的计算结果都是浮点数。整除运算符使用(//),例如1//2是0,2//2是1。如果分子或分母有一个是浮点数,则结果也是浮点数,例如1.0//2是0.0,2.0//2是1.0,即在整除结果的基础上保持浮点数格式。列举几个例子。
2+4-3=3 # -即是负号也是减号
4*5+20 # =40
6.3/7 # =0.9
6.3//7 # =0.0
6//7 # =0
(30+2)*12 # 先算括号中的
5%2 # =1
5.0%2 # =1.0
2**3 # 2的3次方
3.2**3 # 3.2的3次方
9种运算符的优先级,优先级越高越优先计算,优先级相同,从左向右计算。
举例如下
print(2 + 4) # 6
print(126 - 654) # -528
print(6 + 20 * 4) # 86
print((20 + 54) * 30) # 2220
print(1/2) # 0.5
print(1//2) # 0
print(3/2) # 1.5
print(3//2) # 1
print(4**3) # 64
print(3 + 5 * -3 ** 4 - (-5) ** 2) # -427
x = 30
y = 50
k = 10.2
print(x + y * k) # 540.0
2.2.2 大整数
在Python语言中不用担心数字会溢出,可以处理非常大的整数,这也是很多人使用Python语言进行科学计算和数据分析的主要原因之一。
print(2 ** 35)
print(2 ** 630 * 100000)
2.2.3 二进制、八进制、十六进制
数值(没有小数点)之间的进制转化,二进制0b开头,八进制0o开头,十进制没有前缀,十六进制0x开头。
统一转换为2进制数,bin函数,接收一个参数(八进制 十进制 十六进制)。
print(bin(0o76)) # 8进制---》2进制
print(bin(12)) # 10进制--》2进制
print(bin(0xF15)) # 16进制--》2进制
统一转换为8进制数,oct函数,接收一个参数(二进制 十进制 十六进制)。
print(oct(0b110011)) # 2进制---》8进制
print(oct(12)) # 10进制--》8进制
print(oct(0xF15)) # 16进制--》8进制
统一转换10进制数,int函数,可以省略前缀,int函数有两个参数,第一个参数为需要转化的进制数字符串,第二个参数为进制的类型(2,8,16),返回转化后十进制的结果数值。
print(int("110011",2)) # 2进制---》10进制
print(int("0b110011",2)) # 2进制---》10进制
print(int("76",8)) # 8进制---》10进制
print(int("0o76",8)) # 8进制---》10进制
print(int("F15",16)) # 16进制--》10进制
print(int("0xF15",16)) # 16进制--》10进制
统一转换为16进制数,hex函数,接收一个参数(二进制 八进制 十进制)。
print(hex(0b110011)) # 2进制---》16进制
print(hex(0o76)) # 8进制---》16进制
print(hex(12)) # 10进制--》16进制
2.2.4 数字的格式化输出
对数字进行格式化使用format函数,第一个参数为要格式化的数字,第二个参数为格式字符串。
x = 1234.56789
# 小数点后保留两位数,输出结果:'1234.57'
print(format(x, '0.2f'))
# 数字在12个字符长度的区域内右对齐,并保留小数点后1位数字,输出结果:' 1234.6'
print(format(x, '>12.1f'))
# 数字在12个字符长度的区域内左对齐,并保留小数点后3位数字,紧接着输出20,输出结果:'1234.568 20'
print(format(x, '<12.3f'), 20)
# 数字在12个字符长度的区域内右对齐,并保留小数点后1位数字,数字前面补0,输出结果:'0000001234.6'
print(format(x, '0>12.1f'))
# 数字在12个字符长度的区域内左对齐,并保留小数点后1位数字,数字后面补0,输出结果:'1234.6000000'
print(format(x, '0<12.1f'))
# 数字在12个字符长度的区域内中心对齐,并保留小数点后2位数字,紧接着输出3,输出结果:' 1234.57 3'
print(format(x, '^12.2f'),3)
# 每千位用逗号(,)分隔,输出结果:1,234.56789
print(format(x, ','))
# 每千位用逗号(,)分隔,并保留小数点后2位数字,输出结果:1,234.57
print(format(x, ',.2f'))
# 用科学计数法形式输出数字,输出结果:1.234568e+03,大写E小写e均可
print(format(x, 'e'))
# 用科学计数法形式输出数字,尾数保留小数点后2位数字,输出结果:1.23E+03
print(format(x, '0.2E'))
2.3 获取用户输入
从命令行接收用户的输入数据,需要使用input函数,input函数接收一个字符串类型的参数,作为输入的提示,返回用户输入的字符串值。
如果想要得到相应的数值类型,就需要字符串转换函数。字符串转换整型int函数,字符串转换浮点型float函数。
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))
salary = float(input("请输入你的收入:"))
print("姓名:", name)
print("年龄:", age)
print("收入:", format(salary, "0.1f"))
2.4 函数
Python提供了许多内建的函数以及通过模块提供了更多的函数。
from cmath import sin # 导入cmath模块中的sin函数
print(pow(2,5)) # 32
print(abs(-12)) # 12
print(sin(3.14 / 2)) # (0.9999996829318346+0j)
print(round(3.6)) # 4
print(round(3.4)) # 3
2.5 注释
单行注释用#,多行注释用三个引号(单引号或双引号),一般常用来注释代码的作者、编写时间、编码方式。
# coding = utf-8
# coding = gbk
#计算2的4次幂
print(2 ** 4)
"""
1234
123
12
1
"""
'''
1
12
123
1234
'''
2.6 字符串基础
字符串可以使用单引号或双引号括起来,都是合法的写法。
x = 'hello world'
y = "hello world"
print('hello world')
print("hello world")
2.6.1 单引号字符串和转义符
双引号包含单引号。
print("let's go")
单引号包含双引号。
print('我喜欢"Python"')
同时包含单引号或双引号,需要用到转义符,告知解释器并不是将字符串括起来的单引号或双引号。
print('let\'s go!.\"涛哥很帅\"')
2.6.2 拼接字符串
有时候字符串很长,需要写成多个部分,再拼接起来。将多个字符串写在一起,且中间不能有变量,得到紧挨着的字符串。
print('hello' 'world')
如果非要拼接变量字符串,则需要使用
+
x = '123'
print('hello:' + x)
2.6.3 保持字符串的原汁原味
# 字符串中的 \n 代表换行
print('hello \n world')
# 数字与字符串混合输出,先将数字转化为字符串,再拼接输出
print(str(12345)+'\n'+str(12345.54321))
# 按原字符输出,repr输出自带单引号,r或\\ 输出不带引号
print(repr(hello \n world))
print(r'hello \n world')
print('hello \\n world')
# 数字必须转换为字符串,才可以用len函数测量字符串长度
# 5
print(len(str(12345)))
# 5
print(len('12345'))
# 6,转义字符 \n 只能算1个长度
print(len('123\n45'))
# 7,转义\\后,成为普通符号\,\\只能算1个长度
print(len('123\\n45'))
# 7,字符串中都是普通符号,没有转义,\n算2个长度
print(len(r'123\n45'))
# 9,输出自带单引号
print(len(repr('123\n45')))
2.6.4 长字符串
用print函数输出多行注释,则会保留原始的格式。故中间可以任意使用混合的单引号或双引号。
# 原样输出
print('''
hello
world
''')
# 又会把换行转义,最终单行显示
print('''
hello \
world
''')
# 长字符串中间可以混合使用单引号或双引号
print("""
let's go!
涛哥喜欢"Python"
""")