Python变量定义
Python为动态语言,定义变量时无需指定变量类型(与之对应的是静态语言)。
# 基础语法
str01 = "字符串01"
str02 = "字符串02"
num01 = 10
num02 = 20
print(str01+"_"+str02)
print(num01+num02)
print(type(str01)) # type()函数可以判断变量类型
print(type(num01))
print(isinstance(str01,str)) # isinstance()函数可以指定变量与变量类型,进行判断,是则返回True,否则返回False
print(isinstance(str01,int))
# 常量:Python没有常量的定义,只是习惯上将全部大写的变量名表示常量
PI = 3.14159265359
Python控制语句
- if 分支判断
- for 循环
- while 循环
- continue 跳出循环
- break 终止循环
- pass
# if分支判断
study = int(input("请输入你的成绩:"))
if study >= 60 and study <90:
print("及格")
elif study >= 90:
print("优秀")
else:
print("不及格")
# for循环
for i in range(5):
print(i)
for i in range(1,10,2):
print(i)
# while循环
m = 100
sum = 0
n = 1
while n <= m:
sum += n
n += 1
print(sum)
# continue跳出循环
for i in range(1,10):
if i%2 == 0:
continue
else:
print(i)
# break终止循环
for i in range(1,10):
if i%2 == 0:
break
else:
print(i)
Python函数语法
函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()等。也可以创建用户自定义函数。
函数定义的简单规则 :
- 函数代码块以def关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须放在圆括号中间
- 函数内容以冒号起始,并且缩进
- 若有返回值,return 结束函数;不带return 表达式相当于返回None
def functionname( parameters ):
"函数_文档字符串"
pass #function_suite
return [expression]
注意点 :
-
全局与局部作用域
-
多返回值
-
必备参数
# 必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。 def printme(a,b): print(a,b) # 调用,不写参数关键字的话,需要按定义的顺序传入参数 printme("str01","str02") # str01,str02 printme(b="str02",a="str01") # str01,str02 打印结果是一样的
-
缺省参数(默认参数)
def printinfo( name, age = 35 ): print("Name: ", name); print ("Age ", age); return; # 调用 printinfo( age=50, name="miki" ); # 标注了关键字就可以不用管顺序了 printinfo( name="miki" ); # age就是默认35
-
可变参数(不定词参数)
def sumall(count,*num): print(count) print(sum(num)) # 调用,可变参数可以传入任意个参数,包括0个参数 sumall(2,1,2,3) # 其实就是把后面三个参数:1,2,3打包成一个元组传入(1,2,3)
-
关键字参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple
而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
def person(name, age, **kw): print('name:', name, 'age:', age, 'other:', kw) person('a',12,sex='boy',tall=165) # name: a age: 12 other: {'tall': 165, 'sex': 'boy'} def person(name, age, **kw): if 'city' in kw: # 有city参数 pass if 'job' in kw: # 有job参数 pass print('name:', name, 'age:', age, 'other:', kw)
-
命名关键字参数
注意与必备参数和缺省参数的区别,虽然都有关键字,但调用时命名关键字参数必须写上参数名,以*号为间隔区分
# 命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数 # 命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错 def person(name, age, *, city, job): print(name, age, city, job) person('Jack', 24, city='Beijing', job='Engineer')
# 命名关键字参数可以有缺省值,从而简化调用 def person(name, age, *, city='Beijing', job): print(name, age, city, job) person('Jack', 24, job='Engineer') # 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了 def person(name, age, *args, city, job): # city和job已经是命名关键字参数了,也是为了避免与前面的可变参数冲突 print(name, age, args, city, job) person('Jack', 24, 'boy', 165, city='Beijing', job='Engineer')
# 同理,有关键字参数,后面的参数也会变成命名关键字参数,避免冲突 def person(name, age, **kw, city, job): # city和job已经是命名关键字参数了,也是为了避免与前面的可变参数冲突 print(name, age, **kw, city, job) person('Jack', 24, sex='boy', tall=165, city='Beijing', job='Engineer')
-
参数组合
以上5中参数形式可以相互组合,但存在一定限制,比如关键字参数必须在可变参数之后