python基础1
一些python基础知识,以防忘记
行与缩进
python使用缩进来表示代码块,不需要使用大括号
eg:
# 判断条件没括号
if True:
print(1)
else:
print(2)
# while循环写法
while True:
print(1)
多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠来实现多行语句。
#不缩进对齐也行(这里指的是不影响多行语句这个功能),为了易读,最好缩进对齐
total = item1 + \
item2 + \
item3
字符串
-
python中单引号和双引号使用完全相同
-
使用三引号(’’'或""")可以指定一个多行字符串。
eg:
str = """a, aaaa"""
-
字符串可以用 + 运算符连接在一起,用 * 运算符重复。
eg:
str = 'aaa' str1 = 'bbb' str2 = str + str1 #str2 = 'aaabbb' str3 = str*2 #str3 = 'aaaaaa'
-
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始(倒数第1个位置)。
eg:
str = 'abc' print(str[0:-1])#表示字符串切片,-1表示倒数第一个位置,切片是左闭右开的 #输出ab
-
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
-
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
str = 'python' print(str)#输出python print(str[:2])#表示0-1序号的字符串,输出py print(str[1:])#表示1-尾部的字符串,输出ython print(str[0:7:2])#步长为二,输出pto print(str[6::-1])#反向,输出ohtyp
Print 输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
print(30,end="")
print(40)
#输出3040
print(30,end="aaa")
print(40)
#输出30aaa40
import 与 from…import
在 python 用 import 或者 from…import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
控制语句
if 格式:
if expression:
expression
elif expression:
expression
else:
expression
pass
pass表示什么都不做
while True:
pass # Busy-wait for keyboard interrupt (Ctrl+C),按Ctrl+c可以退出这个循环
函数定义
格式:
def 函数名(参数列表):
函数体
return#返回值,没有表示无返回值
默认参数值与C++类似,加个等号完事
默认参数值如果是mutable对象(mutable 对象,比如list,dictionary),那么它将会随着你调用改变而改变(会有累加效果)
def func1(a,b=[])
b.append(a)
print(b)
func1(1)#b=[1]
func1(2)#b=[1,2]
func1(3)#b=[1,2,3]
Lambda表达式
C++中的lambda表达式(匿名函数):
//格式:
//[capture list](parameter list) ->return type {function body}
//示例:
auto f3 = [](int x,int y)->int{return x>y?x:y;};
python中的Lambda表达式:
#格式
#lambda parameter list:function body
f = lambda a,b,c:a+b+c
print(f(1,2,3))#6
赋值
-
基本形式(形如)
a = 3
-
元组及列表拆包赋值
a,b,c = 1,2,3#也可,这是多个变量赋值,与元组拆包是不一样的 a,b,c = [1,2,3]# 列表 d,e,f = (4,5,6)# 元组 print(a)#输出1 print(a,b,c,d,e,f)#输出1 2 3 4 5 6
-
序列赋值
在新的Python版本中,元组及列表赋值语句已经统一为现在的序列(数据类型,像list,tuple,string等都是序列)赋值语句——任何变量名的序列都可以赋值给任何值的序列。Python会按位置一次赋值一个元素。注意:序列长度需要与解包的变量个数相同,否则会报错,如要解决这个问题,可以加个’*'解决(只能使用一次)。
def printa_b_c(a,b,c): print(a,end='*') print(b,end='*') print(c) str = 'abc' list1 = [8,9,10] tuple1 = (34,'we',89,64) a,b,c=str printa_b_c(a,b,c) a,b,c=list1 printa_b_c(a,b,c) # 解决变量少于序列长度,*号只能使用一次 a,b,*c=tuple1 printa_b_c(a,b,c) a,*b,c=tuple1 printa_b_c(a,b,c) *a,b,c=tuple1 printa_b_c(a,b,c) #输出如下: ``` a*b*c 8*9*10 34*we*[89, 64] 34*['we',89]*64 [34, 'we']*89*64 ```
reference
1.https://docs.python.org/3/tutorial/index.html
2.https://www.jianshu.com/p/0dda16bfb585
3.https://www.runoob.com/python3/python3-basic-syntax.html