常量:不能改变的量-字面量
整数常量
>>> print(10) # 十进制
10
>>> print(0b1001) # 二进制 binary
9
>>> print(0o12) # 八进制 oct
10
>>> print(0x12) # 十六进制 hex
18
>>>
>>> 123 % 7
4
>>> 17 % 7
3
>>> 2 % 7
2
>>>
注意:没有byte short long 之分, 一律默认int
- 小数常量
>>> print(1.34)
1.34
>>> print(0.12e10) #0.12*10^10
1200000000.0
>>>
注意:没有float 与double之分,程序默认float
- 字符串·常量
字符串表示一段文本信息,程序会将文本信息原封不动的处理
>>> print("1+2+3")
1+2+3
>>> print('1+2+3')
1+2+3
python没有字符的数据,一律当成字符串处理,双引号和单引号都可以表示字符串
>>> print("张老师说:"好好学习"")
File "<stdin>", line 1
print("张老师说:"好好学习"")
^^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?
>>> print("张老师说:'好好学习'")
张老师说:'好好学习'
- 布尔值常量
只有俩个值True,False
>>> print(True + 1)
2
>>> print(False + 1)
1
>>>
True如果参与运算默认为0,这种有意义嘛?
- 复数常数
>>> 1+2j
(1+2j)
>>> complex(1,2)
(1+2j)
>>> (1+2j)*(1-2j)
(5+0j)
>>>
关键字
>>> 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']
内置函数名/类名
内置函数就是python自带的一些具有特殊功能的函数
所以我们在使用内置函数的时候,一定要注意名称不能够被更改
数据转换
int a = (int) 3.14;
int()将其他有效的数据转为整数
- 取整
- 从字符串中解析整数
>>> int(3.14) # 将小数进行取整操作
3
>>> int("123") # 将数字字符串进行解析(默认十进制),解析出一个整数
123
>>> int("123abc")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123abc'
>>> int("AD",16) # 将数字字符串进行16进制解析,结果都是十进制
173
>>> int("91A",12)
1318
>>> 10 * 12 ** 0 +12 * 1 ** 1 + 9 * 12 ** 2
1318
>>> int("A1F",13)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 13: 'A1F'
>>> int("91a",100)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: int() base must be >= 2 and <= 36, or 0base 进制基数 = [2,36]
>>> int("98*!",12) # 出现特殊符号
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 12: '98*!'
>>> int("10010101") #注意坑,二进制串特不一定是二进制数字
10010101
>>> int("10010101",2)
149
>>>
float:将其他的数据转化为小数
>>> float(3)
3.0
>>> float(3.14)
3.14
>>> float("3.14")
3.14
>>> float("3.14",10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: float expected at most 1 argument, got 2
>>>
str:将其他数据转字符串
>>> str(123)
'123'
>>> str(3.14)
'3.14'
>>> str(print)
'<built-in function print>'
bool():将其他数据转化布尔类型(对于数值类型的话,非0全是True,0就是False)
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(0)
False
>>> bool(3.14)
True
>>> bool(-3.14)
True
>>> bool(0.0)
False
>>># 对字符串 空串为False,非空为True
>>> bool("abc")
True
>>> bool(" ")
True
>>> bool("")
False
>>>
进制转换
>>> bin(123)
'0b1111011'
>>> oct(123)
'0o173'
>>> hex(123)
'0x7b'
>>> bin("123")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
>>> bin(3.14)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer
>>>
字符与ASCII码转换
A~Z a~z 0~9 他们在ASCII码中的编号都是连续的
ord():获取字符对应的ASCII码
>>> ord('a')
97
>>> ord('A')
65
>>> ord('0')
48
>>>
chr():根据给定的ASCII码编号获取对应的字符
>>> chr(98)
'b'
>>> chr(57)
'9'
A = 10 B = 11 ...... F = 15
13 - D
chr(ord('A') + 13 - 10)
常见的数字计算
>>> abs(3.14) # 取绝对值
3.14
>>> abs(-3.14)
3.14
>>> pow(2,4) # 求a的 b次幂
16
>>> pow(16,0.5)
4.0
>>> pow(2.0,4)
16.0
>>> max(1,2,3,4) # 求最值问题
4
>>> min(1,2,3,4)
1
>>> round(3.14) # 四舍五入
3
>>> round(3.51)
4
>>>
输入与输出
input()
#num = int(input(" 请输入一个数字 :"))num = eval ( input ( " 请输入一个数字 :" ))# input() 默认输入的是一个字符串 ( 整行 )print ( num + 1 )"""TypeError: can only concatenate str (not "int") to str反向证明输入的是字符串ValueError: invalid literal for int() with base 10: '123 456'"""# 处理一行内多个数据的输入# eval 处理的数据必须要有逗号分隔# eval 自动处理字符串解析# eval 既可以处理单值 也可以处理多值"""请输入两个数字 :123,456579"""num1 , num2 = eval ( input ( " 请输入两个数字 :" ))print ( num1 + num2 )
print()
print ( "Hello World" )print ( 1 + 2 + 3 )print ( 1 , 2 , 3 , "Hello World!" ) # 多数据输出 用空格分隔print ( 1 , 2 , 3 , sep = "#" ) # sep 默认空格
print ( 1 , 2 , 3 , end = "!!!" ) # end 输出的解围 默认 "\n"# print(*args, sep=' ', end='\n', file=None, flush=False)print ( 1 , 2 , 3 , end = "!!!" )print ( "Hello World" , end = "!!!" )print ( "Hello World" , end = "!!!" )print () # 单独一个 print 换行的意思 其实打印的是空串# 格式化输出name = " 旺财 "age = 18height = 1.23print ( " 它叫 " , name , " ,今年 " , age , " 岁 " , sep = "" )# %s 对应字符串 %d 对应整数 %f 对应小数print ( " 它叫 %s ,今年 %d 岁,身高 %.2f 米 " % ( name , age , height ))