Python基础语法

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中参数形式可以相互组合,但存在一定限制,比如关键字参数必须在可变参数之后

参考:https://www.liaoxuefeng.com/

posted @ 2019-03-05 09:14  stream886  阅读(394)  评论(0编辑  收藏  举报