数据类型
Number、String、List、Tuple、Sets、Dictionary六组标准数据类型
Number:int对应int、long long(没有数据范围限制),float对应double、float,还有complex复数类型。
String:对应C++ String类,用""或‘’均可。
List:类似C++ Vector容器,用[]表示。长度不固定,数据类型不固定。
Tuple:似乎在C++没有对应类型或容器,用()表示。元组不可变,不能添加或删除元素。
Sets:类似C++ unordered_set,无序不可重复的序列,用{}表示。
Dictonary:类似C++ map容器,由key-value对组成。
输入输出
a=input()
默认类型为String,要转为数字类型可使用a=eval(input())或a=input() a=int(a)
同一行多个数字输入,需要使用input().split()
e.g. 5 6 7 8,a,b,c,d=input().split()
将其存入数组,需要使用map(与C++的map完全不同,Python中map会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。详见->)
e.g. a=list(map(int,input().split()))
print("a")输出字符a,默认换行。
print("a","b")输出a b,字符间默认空格。
print("a","b",sep='',end=''),取消默认空格或换行
循环
C++:for(int i=0;i<n;i++)
Python:for i in range(1,n):
C++:while(n<10)
Python:while n<10:
注意冒号
常用语句
if a>5:
print(12345)
elif a<0:
print(54321)
else:
print(123)
a=5
b=6
a,b=b,a
#交换ab
min(a,b)
#最小值
max(a,b)
#最大值
c=[1,2,7,4,7,0]
c.sort()
print(c)
d=sorted([1,2,7,4,7,0])
print(d)
#两种排序
函数
def hello():
print("hello")
hello()
#无返回值
a=5
b=6
def ab(a,b):
a=1
b=2
ab(a,b)
print(a,b)
#输出5 6
#传入的Number类型对象在函数处理后不会被改变
a=5
b=6
def ab(a,b):
a=1
b=2
return a,b
a,b=ab(a,b)
print(a,b)
#输出1 2
#多个返回值,以元组形式返回
a=[12,546,324]
def test(a):
a.sort()
test(a)
print(a)
#输出12 324 546
#传入的List对象在函数处理后被改变
#详见可变对象与不可变对象https://www.runoob.com/python3/python3-function.html
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
sum=lambda a1,a2:a1+a2
print(sum(10,20))
"""
lambda 只是一个表达式,函数体比 def 简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
"""
不定长参数:*表示元组,**表示字典。
函数部分详情请参见Runoob