最近复习了一下python3的基础语法,期间也有不少坑和小知识点,例如:python3中的类,类中的构造函数,一维数组,二维数组,一行输入多个数等等等等,现在记录一下这些坑点。
- 一行输入多个数字。可以用如下方法,当个数比较少的时候,例如2,3,4都可以,int是数据类型
n , m = map( int , input().split(' ') )
- 当数字比较多的时候,就要用到一行输入一维数组的形式了:list就是一个数组,x就是输入,这样输入多少个都可以
list = [int(x) for x in input().split()]
- 一维数组的初始化,初始化为0:
dp = [ 0 for i in range( 0 , n ) ]
- python3中print输出的时候会自动换行,怎么让他以空格结束呢,可以用如下方法:
print( dp[i] , end = " " )
- 一维数组排序,可以用sort函数,一个参数是key,一个参数是排序规则,像下面这种的话就是按从大到小的降序排序,去掉reverse参数的时候,默认为false,就是升序,而且也没有根据某个key规则排序
list.sort(reverse = True)
-
python3中的幂次方,**和自带的pow函数的效率其实都非常快,并不是直接for循环求出来的,而且可以取模
pow( m , n , mod ) m的n次方且每次结果取模
- 二维数组的初始化
P = [[0] * n for i in range(m)] 这种方法可以生成一个 n * m且全为0的二维数组。还有一种方法就是[[0] * m] * n但是在修改某一个数的时候会发生浅拷贝问题,然后直接会将某一行或者某一列的值全部修改掉。
- 保留小数输出
print(format(x) , '.2f')) 保留了两位小数输出
- 类和构造函数
class Circle: def __init__( self , x , y , r ): self.x = x self.y = y self.r = r
init是构造函数,当需要某一个类实例化对象的时候就可以 c = Circle( 0 , 0 , 0 )
- python3中没有++和--
- python3中允许0 <= x <= n 这种写法 and 和 or 表示且和或