py第二章基本数据

常量:不能改变的量-字面量

整数常量

>>> 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自带的一些具有特殊功能的函数

b9c6ee0b27224282a2fe8b869849e7d7.png

所以我们在使用内置函数的时候,一定要注意名称不能够被更改

数据转换

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 0

base 进制基数 = [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,456
579
"""
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 = 18
height = 1.23
print ( " 它叫 " , name , " ,今年 " , age , " " , sep = "" )
# %s 对应字符串 %d 对应整数 %f 对应小数
print ( " 它叫 %s ,今年 %d 岁,身高 %.2f " % ( name , age , height ))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈好运17

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

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

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

打赏作者

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

抵扣说明:

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

余额充值