zoukankan      html  css  js  c++  java
  • python3 函数传参练习 全局变量与局部变量 的理解

    额 还是继续抄一边NLP第二条:

    2.一个人不能控制另外一个人

      一个人不能改变另外一个人,一个人只能改变自己。

      每个人的信念,价值观,规条系统只对本人有效,不应强求别人接守。

      改变自己,别人才会有可能改变。

      一个人不能推动另外一个人,每个人都只可以自己推动自己。

      找出对方的价值观,创造,增大或转移对方在乎的价值,对方便会产生推动自己的行为。

      一个人因此不能“教导”另外一个人,一个人只能引导另外一个人取学习。

      因此一个人不能希望另外一个人放弃自己的一套信念,价值观和规条系统,而去接受另外的一套。

      好的动机只给一个人取去做某一件事的原因,但是不能给他控制别人,或使事情恰如他所愿发生的权利。

      不强迫别人跟随自己的一套信念,价值观和规条,别人便不会抗拒。

      同样的,我们只能自己推动自己。

    唉,还有点儿看不懂。。。。。


    先来几个Pycharm的快捷键 炒鸡好用!!!

    Ctrl + 鼠标左键 可以来回看函数调用 

    Shift + Enter 快速换行   

    Ctrl + d 复制一行

    Ctrl +y 删除一行

    Ctrl + / 注释一行或所选多行

    Shift + Tab  所选多行后退一个缩进

    函数的三大性质:减少重复代码  使程序变得可扩展 使程序变得易维护

    三大编程方式:面向对象方法(Python)      面向过程方法(C)   函数式编程(Erlang)  

         核心                        类(class)                   无返回值函数             有返回值函数

    草稿如下。。。

     1 #!usr/bin/env/ python
     2 # -*- coding:utf-8 -*-
     3 # Author: XiaoFeng
     4 
     5 a = 1, 2, 3    # 这样赋值,结果是元组输出 理解这点很关键 下面都得用!!!
     6 print(a)
     7 print("-" * 50)
     8 
     9 
    10 def test():   # 这是无参函数 也叫面向过程
    11     print("呀哈哈哈哈")
    12     # 没有return 所以也叫面向过程
    13 
    14 
    15 t =  test()
    16 print(t)  # 返回空
    17 print("-" * 50)
    18 
    19 
    20 def test0():
    21     print("呀哈哈哈哈")
    22     return 1, "a", ["list"], {"ket": "value"}
    23 # 啥都能返回  以元组打包的形式返回
    24 
    25 
    26 t = test0()
    27 print(t)
    28 print("-" * 50)
    29 
    30 
    31 def test1(x, y, z):  # x,y,z是位置参数  赋值与实参位置有关
    32     print(x)
    33     print(y)
    34     print(z)
    35     return "test"    # 有返回值 即为函数式编程  只有一个数据的时候就不打包了
    36 
    37 
    38 t2 = test1(1, 2, 3)  # 第一种输入方式 按顺序赋值
    39 print(t2)
    40 print("-" * 50)
    41 t3 = test1(y=1, x=2, z=3)  # 关键字赋值 想咋输咋输,不用在乎顺序
    42 print("-" * 50)
    43 # t4 = test2(y=1,2,3) 这就不对  这样写y现在是元组了
    44 t5 = test1(1, z=2, y=3)  # 这样混着用,
    45 print("-" * 50)
    46 # t5 = test2(z=2, 1, y=3)   这就不行 那不就是z 变成元组了么
    47 # 所以想混着用,那就得把关键字放后面,前面的按顺序
    48 
    49 
    50 def test2(x, y=1):  # 默认形参
    51     print(x)
    52     print(y)
    53 
    54 
    55 test2(2)      # 默认形参可不传值给他
    56 test2(2, y=2)  # 以关键字赋值的方式改默认
    57 test2(2, 2)    # 这样也可以。。
    58 print("-" * 50)
    59 
    60 
    61 def test3(x, *args, y=0):   # 传参数组  想传几个就传几个 然后以元组方式打包起来
    62     print(x)          # 按位置传值 相对应的位置就传给位置参数
    63     print(y)
    64     print(args)
    65 
    66 
    67 test3(1, 3, 4, "5", 9, y=1)  # 只要用关键字赋值,那就就必须放在最后面 原因在最上面
    68 print("-" * 50)
    69 
    70 
    71 def test4(x, y=0, **kwargs):  # 也是传参数组,不过是用字典包起来
    72     print(x)
    73     print(y)
    74     print(kwargs)    # 传参时用关键字赋值,以关键字作key
    75 
    76 
    77 test4(2, y=3, name="xiaofeng", age=20)  # 注意字典的key不要与默认的形参重名

    然后是全局变量,局部变量的区分 草稿如下。。。

     1 #!usr/bin/env/ python
     2 # -*- coding:utf-8 -*-
     3 # Author: XiaoFeng
     4 
     5 global_x = 1    # 定义全局变量最好加个global 在最上面定义
     6 # 事实证明这也不过是个变量,是可以改的 但是咱不改他
     7 
     8 
     9 def test():
    10     x = 3       # 局部变量  只在函数内起作用,函数结束就没了
    global global_x # 非要改全局变量 那就先global声明一下就能改了
           global_x = 6       
    11 print(x) 12 print(global_x) 13 14 15 test() 16 print(global_x) 17 18 # 递归函数 特点是 要有结束条件 问题规模应该减小 效率低 19 20 21 def test1(n): 22 if n > 0: 23 print(n) 24 return test1(int(n/2)) 25 26 27 test1(20) 28 29 30 def test2(a, b, f): # 高级函数 就是把函数名传到函数里用。。。这是要干啥 31 z = f(a) - f(b) 32 print(z) 33 34 35 test2(4, -8, abs)

    作业如下。。。。。。。。真不会写 头大 

     1 #!usr/bin/env/ python
     2 # -*- coding:utf-8 -*-
     3 # Author: XiaoFeng
     4 
     5 
     6 def print_list():
     7     for index, i in enumerate(list1):
     8         print(index, i)
     9 
    10 
    11 def search(find_str):
    12     with open("config_test", "r", encoding="utf-8") as f:
    13         for line in f:
    14             if find_str == line:
    15                 line = next(f)
    16                 print(line)
    17                 # while "serve" in line:
    18                 #     line = next(f)
    19                 #     print(line)
    20 
    21 """
    22 def add():
    23     with open("config_test", "a+", encoding="utf-8") as f, \
    24             open("config_test1", "w+", encoding="utf-8") as f2:
    25         for line in f:
    26             if arg[""] == line:
    27                 line = next(f)
    28                 print(line)
    29             f2.write(line)
    30 """
    31 
    32 
    33 list1 = ["search", "add", "update", "delete"]
    34 while True:
    35     choice = input("请输入操作选择:")
    36     if choice == "0":
    37         find_str0 = "backend "+input("请输入您要查询的内容:") + "\n"
    38         search(find_str0)
    39     # if choice == "1":
    40     #     arg = eval(input("请输入您要写入的内容:"))
    41     #     add(arg)
  • 相关阅读:
    python数据类型三(字典)
    python数据类型二(列表和元组)
    python数据类型一(重点是字符串的各种操作)
    python基础二
    jquery validate学习心得
    Block 朴实理解
    Block 使用场景
    Block 进阶
    MD5加密
    SQL语句中 chinese_prc_CS_AI_WS 以及replace用法
  • 原文地址:https://www.cnblogs.com/xf1262048067/p/10575664.html
Copyright © 2011-2022 走看看