python基础语法

  • n 换行;t 制表符;代码分隔
  • ‘‘’ ‘’‘多行文本赋值
  • ;多行语句写在一行(不符合PEP8规范)
  • 关键字
  • python 自带的好用的函数
    注:reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块
  • 运算符
  • 循环
    迭代循环 for
    条件循环 while
    循环跳出:
    break 终止循环
    continue 跳过本次循环
    pass 不执行,只是让代码看的完整
  • 三元运算符
    为真的结果 if 判定条件 else 为假的结果
  • 标准数据类型
    不可变类型
    数值 number
    字符串 string
    元组 tuple
    可变类型
    列表 list
    集合 set
    字典 dict不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
  • 函数必包:函数内部域能记住外部定义的参数和变量
    变量搜索位置如果函数内部有先使用,如果没有则向上一层寻找。函数内的局部变量的生命周期随着函数的结束而结束。全局变量会一直存在,除非脚本运行结束或者del删除它。
# print_msg是外围函数
def print_msg():msg = "I'm closure"# printer是嵌套函数def printer():print(msg)return printer# 这里获得的就是一个闭包
closure = print_msg()
# 输出 I'm closure
closure()

  • 偏函数
    functools.partial() 固定位置参数

python函数

python 函数的参数传递:不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

  • 必备参数
    必备参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样。
  • 关键字参数
    使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
  • 默认参数
    调用函数时,默认参数的值如果没有传入,则被认为是默认值。
  • 可变参数通过*传入不定长的参数 *传递list tuple类型 **传递dict类型
l = [(1,3),(2,4)]
#通过*传入不定长的参数    *传递list tuple类型 **传递dict类型
a = zip(*l)
for i,j in a:print(i,j)

def total(a=5, *numbers, **phonebook):print('a', a)#遍历元组中的所有项目for single_item in numbers:print('single_item', single_item)#遍历字典中的所有项目for first_part, second_part in phonebook.items():print(first_part,second_part)print(total(10,1,2,3,Jack=1123,John=2231,Inge=1560))

当我们声明一个诸如 *param 的星号参数时,从此处开始直到结束的所有位置参数(Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。
类似地,当我们声明一个诸如 **param 的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为 param 的字典(Dictionary)。

装饰器

装饰器的本质是函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象,,主要用来装饰其他函数,也就是为其他函数添加附加功能

import time
def showtime(func):def wrapper():start_time = time.time()func()end_time = time.time()print('spend is {}'.format(end_time - start_time))return wrapper@showtime   这样方便 不然需要调用  #foo = showtime(foo)
def foo():print('foo..')time.sleep(3)@showtime   这样方便 不然需要调用  #doo = showtime(doo)
def doo():print('doo..')time.sleep(2)foo()
doo()#多好个函数都这么用 互相不冲突

带参数的装饰器

import time
def time_logger(flag = 0):def showtime(func):def wrapper(a, b):start_time = time.time()func(a,b)end_time = time.time()print('spend is {}'.format(end_time - start_time))if flag:print('将此操作保留至日志')return wrapperreturn showtime@time_logger(2)  #得到闭包函数showtime,add = showtime(add)
def add(a, b):print(a+b)time.sleep(1)add(3,4)

装饰器总结

def myDecorator(...):    #定义装饰器,可能带参数def decorator(func):    #装饰器核心,以被装饰的函数对象为参数,返回装饰后的函数对象def wrapper(*args, **kvargs):    #装饰的过程,参数列表适应不同参数的函数...    #修改函数调用前的行为func(*args, **kvargs)    #调用函数...    #修改函数调用后的行为return wrapperreturn decorator@myDecorator(...):    #给函数加上装饰器
def myFunc(...):      #自己定义的功能函数...

Python内置装饰器

在Python中有三个跟class相关的内置装饰器:staticmethod、classmethod 和property。

staticmethod 是类静态方法,其跟成员方法的区别是没有 self 参数,并且可以在类不进行实例化的情况下调用

classmethod 与成员方法的区别在于所接收的第一个参数不是 self (类实例的指针),而是cls(当前类的具体类型)

property 是属性的意思,表示可以通过通过类实例直接访问的信息

面向对象

type() #一切都可以用type()看类型,因为python一切皆对象
id()
dir()
isinstance([1,2,3],list)

其他部分代码:

from functools import reduce
reduce(lambda x,y:x*10+y,[1,2,3,4,5])#前面函数后面参数
:12345filter(lambda x: x not in numerical_columns, list(x_test.columns))def ChangeInt( a ):#函数的参数传递,不可变对象a = 10b = 2
ChangeInt(b)
print(b) # 结果是 2def changeme(mylist):#函数的参数传递,可变对象mylist.append([1,2,3,4])print("函数内取值: ", mylist)returnmylist = [10,20,30]
changeme( mylist )
print("函数外取值: ", mylist)
函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]def printinfo( name, age ):#函数的参数传递,关键字参数print("Name: ", name)print("Age ", age)return#调用printinfo函数
printinfo(age=50, name="miki")def printinfo( name, age = 35 ):#函数的参数传递,默认参数"打印任何传入的字符串"print("Name: ", name)print("Age ", age)return#调用printinfo函数
printinfo(age=50, name="miki" )
printinfo(name="miki" )def printinfo( arg1, *vartuple ):#加了星号(*)的变量名会存放所有未命名的变量参数"打印任何传入的参数"print "输出: "print arg1for var in vartuple:print varreturn# 调用printinfo 函数
printinfo( 10 )
printinfo( 70, 60, 50 )

python函数调用外部变量_Python基础相关推荐

  1. python函数里面引用外部变量_Python基础 变量进阶

    目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...

  2. python的常量变量_Python基础语法-常量与变量

    Python是一门强类型的动态语言. 字面常量,变量没有类型,变量只是在特定的时间指向特定的对象而已,变量所指向的对象是有类型的. 变量:变量在赋值时被创建,它可以是任何对象的引用,但必须在引用前被赋 ...

  3. python赋值布尔变量_python基础 - 变量、布尔值、运算符、条件及循环语句

    文章目录 一.变量 变量包括数字,字母,下划线,且不能以数字开头: python可以同时为多个变量赋值,如a,b = 1,2 ; c,d = 5,"hh": 一个变量可以通过赋值指 ...

  4. python 函数递归一次增加一次变量_python基础之函数、返回值,局部变量、全局变量,递归(继续补充不定长参数)...

    1.python中函数定义:函数是逻辑结构化和过程化的一种编程方法.(完成某一种特定的功能) def test02(): #"" msg = 'hello WuDaLang' re ...

  5. python 去掉双引号_Python基础学习笔记(一)变量与数据类型

    Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如Numpy(数值计算).SciPy(数学.科学与工程计算).Matpl ...

  6. option:contains后面加变量_Python基础篇 -2:初识Python中的变量

    Python学习基础篇 -2 前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 第二篇 ...

  7. python如何访问私有变量_Python基础_私有变量访问限制

    Python内置了一些特殊变量,以前后上下划线标注,同时我们自己要想定义一些变量,不想让外部访问,又该怎么做呢?更多内容请参考:Python学习指南 访问限制 在class内部,可以有属性和方法,而外 ...

  8. python定义变量_Python基础 变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  9. python 条件表达式换行_Python基础语法 - LongKing-Xu的个人空间 - OSCHINA - 中文开源技术交流社区...

    python基础语法 一.标识符 在Python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. 在Python中的标识符是区分大小写的. 在Python中以下划线开头的标识符是有 ...

最新文章

  1. Linux下利用rsync实现网站镜像同步
  2. webview添加网页加载进度条
  3. 数据分析入门极简书单
  4. hihocoder#1041 : 国庆出游(DFS)
  5. 【千字分析】剑指 Offer 47. 礼物的最大价值
  6. jupyter命令把.ipynb文件转化为.py文件
  7. 数字int转换成文字string形式的方法
  8. covariance matrix r语言_R语言 第2章 数据对象与数据读写(3)
  9. LeetCode_1905_连续子数组的最大和
  10. 全球与中国云计算数据中心IT资产处置(ITAD)市场深度研究分析报告
  11. (纪录片)光的故事 BBC Light Fantastic (2004)
  12. Java循环之经典练习题
  13. 项目型IT公司向产品型IT公司演进的必要性
  14. 科技向善,腾讯“守护者智能反诈中枢”在行动
  15. 论文阅读《Direct Sparse Odometry》1
  16. 搭建Web环境初识JSP
  17. 2022年登高架设考试模拟100题及在线模拟考试
  18. Google新闻中国版
  19. 飞翔的小鸟游戏基于arm开发板制作
  20. distinct mysql性能_MySQL中distinct与group by之间的性能进行比较

热门文章

  1. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
  2. IOS15全屏滑动返回
  3. C#关于文件夹遍历以及文件拷贝
  4. (个人总结)Linux命令——任意目录查看穿越
  5. 四川大学计算机学院 期末考试安排,四川大学《计算机组成原理》2018期末考试B卷.doc...
  6. c语言递归函数变量作用域,C语言课程变量的作用域和生存周期、递归.ppt
  7. python 二分类的实例_keras分类之二分类实例(Cat and dog)
  8. android cad 开源库,KiCad 开源元件库收集
  9. 上海找python工作容易吗_Python程序员去上海工作有多难?
  10. 详解C++17下的string_view