命名规范

  • 模块名:短小,全小写字母,下划线分割。

  • 包名:全小写,其他和 Java 一样 space.xorex.bookstore。

  • 类名:和 Java 完全一样,首字母大写的驼峰命名。

  • 函数名,变量名:全小写字母,下划线分割。

  • 常量:全大写。下划线分割

数据类型

int 整形

对于 Python 来说,无论多长的整数,都是 int 类型。会在内部随着大小在 byte short int long 高精度 进行自动切换,不需要担心转化的问题。

可以用不同进制的数赋值,并进行运算也是可以的!

1
2
3
num1 = 0x22  
num2 = 0x22
print(num1 + num2)

float 浮点数

同样支持 float double 高精度 随时切换,对外展示为 float 类型。

并且支持指数表示法:比如 1.234E23

complex 复数

Python 内置复数处理,没错就是实部+虚部,其中 a 和 b 是实数,则使用 a+bj 表示复数。

1
2
complex_number = 1 + 4j  
print(type(complex_number))

输出类型是复数 complex

str 字符串

字符串,Pythno 字符串中,单引号和双引号没有任何区别,但是还是建议双引号。同时字符串不可被改变。

可以使用反斜杠来进行字符串转义。


对于换行来说,使用 \ 可以表示下一行也是内容。下面输出 Tempest Xorex

1
2
3
str = "Tempest " \ 
"Xorex"
print(str)

可以用 ‘’’ 或者 “”” 里面放格式自由的字符串。

bytes 字节串

字节串和字符串比较相似,字符串是保存的一个个字符,字节串则是保存的一个个字节,可以类比字节数组 bytes[] 。字节串可以存储字符串,音频,图片等等由字节组成的数据。

将字符串转化为字节串:

  • 如果字符串内容都是 ASCII,在字符串常量前面加 b 即可转化:
1
2
bytes_var = b"Xorex"  
print(type(bytes_var)) #输出内容为 bytes 类型
  • python 内置 bytes 类型的构造方法,可以通过构造方法获取
1
2
bytes_b = bytes("你好呀","UTF-8") # 字符串和转化字节的编码  
print(type(bytes_b))
  • 利用字符串对象的 encode() 方法,返回一个字节串
1
2
bytes_a = "你好呀".encode("UTF-8")  
print(bytes_a)

bool 布尔

True 和 False 两种

类型转换

Python 类型转换是通过函数完成的。下面是要转化为对应的类型的转化函数:

函数 作用
int(x) 将 x 转换成整数类型
float(x) 将 x 转换成浮点数类型
complex(real,[,imag]) 创建一个复数
str(x) 将 x 转换为字符串
repr(x) 将 x 转换为表达式字符串
eval(str) 计算在字符串中的有效 Python 表达式,并返回一个对象
chr(x) 将整数 x 转换为一个字符
ord(x) 将一个字符 x 转换为它对应的整数值
hex(x) 将一个整数 x 转换为一个十六进制字符串
oct(x) 将一个整数 x 转换为一个八进制的字符串

str(x) 和 repr(x)

两个都是对象的 toString() 方法,不同的是打印信息的目的不太相同:

  • str() 的输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。

  • repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用。

repr: representation 展示、演示。

eval(str)

只要是 Python 能计算的表达式的字符串,放到里面都可以被解析计算。

ord(x)

ord() ordinal 顺序的次序的,返回字符在 Unicode 中的编码次序,为 int 类型。

缓存机制

类似于 Java 的字符串类型的机制,不过由于 Python 没有基本数据类型,所以原本 Interger 这种包装类的缓存机制,也一并被 Python 统一设置在了全局里面。

数据类型 是否可以重用 生效范围
范围在 [-5, 256] 之间的小整数 如果之前在程序中创建过,就直接存入缓存,后续不再创建。 全局
bool 类型
字符串类型数据
大于 256 的整数 只要在本代码块内创建过,就直接缓存,后续不再创建。 本代码块
大于 0 的浮点型小数
小于 0 的浮点型小数 不进行缓存,每次都需要额外创建。
小于 -5 的整数

输入输出

输入 input()

将控制台的一行输入并返回为字符串。其中 input() 函数里面可以输入字符串作为输入提示。

1
name=input("请输入你的名字:")

输出 print()

来看看 print() 函数的定义吧,我相信看了就懂:

1
2
3
4
5
6
7
8
9
10
11
12
13
# known special case of print
def print(self, *args, sep=' ', end='\n', file=None):
"""
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
"""
pass

默认分隔符空格,结尾是换行,输出到屏幕上(sys.stdout)。于是可以这样写:

1
print("Tempest","Xorex", end="[end]",sep="[sep]")

然后输出:Tempest[sep]Xorex[end]

也可以设置 file 属性,定义输出位置,接收参数可以是 open() 打开的文件。


print() 支持格式化输出,和 C 语言一样,在字符串中添加占位符,然后紧跟着字符串后面,表示占位符代替的变量。当一个占位符的时候可以不加括号,多个就需要加括号。

1
2
3
4
first_name = "Tempest"  
last_name = "Xorex"
age = 18
print("First Name: %s; " %first_name,"Last Name: %s; age: %d;" %(last_name,age))

输出:First Name: Tempest; Last Name: Xorex; age: 18;

剩下的诸如输出宽度,输出精度,对齐方式什么的,就和 C 语言是一样的了。

Python 运算

算数运算

和 Java 相比,除了基本的加减乘除模,多了整除 // 和幂运算

少了 自增自减,因为 Python 中数字是常量对象,只能转移变量指向的对象,无法修改对象。

位运算

和 Java 的一样,只支持整形运算,运算位数取决于最长的那个数。

关系运算符

除了 大于小于等于不等于大于等于小于等于 以外,多了两个: isis not

前面的都是拿着字面量进行比较,而 isis not 是进行对象地址进行比较的。

1
2
3
x = 187987897234234  
y = int(input()) # 不也写成字面量是因为有字面量缓存,所以输出转化一下,获取一个新的对象
print(x is y) # 输出结果是 False

逻辑运算符

逻辑运算符 and or not,支持任何数据类型(不仅仅是 Bool),支持短路运算。

运算优先级和结合性

反正小括号优先级最高,不确定就加小括号。

337.jpg