python 基础知识

python 基础知识

说明:

  1. 当前版本:3.7.0
  2. 所有示例都是写在文件中.py
  3. 参考教程:Python教程
  4. 执行文件python index.py
  5. 所有的代码都在同一个文件index.py中,各部分引用变量一致。

起步

  1. 输出一个hello world;

    print("hello world")
    

    注意:在.py文件中代码是不能随意缩进的,不然执行报错

  2. 用户输入;

    name = input("please input your name \n");
    print("welcome",name)
    

    执行文件后,等待用户输入,按enter结束输入,打印welcome XXX.

    注意:

    • 用户输入的值类型是字符串
  3. if...else语句

    # if block
    if name=="admin":
        print("欢迎管理员登陆!")
    else:
        print("登陆成功!")
    

    ** 说明**:

    • if...else语句以:结束,语句块缩进表示;
    • # 表示注释,描写代码块的功能。

    注意:由于使用的控制终端不同,导致打印中文报错。可设置其他终端或者设置文件编码
    定义文件编码

  4. 数据类型
    整数、浮点数、字符串、布尔值、空值

    # '\' 转义
    print("hello \n world")
    # '\t' 制表符 '\n' 换行 ‘r'XXX'’ 定义内容部不专一
    print(r"hello \n world");
    # ‘'''xxx'''’ 格式化文本换行
    print('''hello
    world''')
    # 布尔运算符 and or not         
    print(8>5 and 8<10)
    

    说明:

    • 浮点数科学计数法表示:2e10
    • 布尔值大写的True / False
    • 变量命名是大小写敏感的,如:name/Name 不同。
    • 空值表示为none
    • 变量定义遵循基本的规则:英文、数字、下划线,不能以数字开头。
    • 常量定义不能改变的变量,用大写表示。
  5. 字符串

    # ord 对单个字符编码 chr 对单个字符的解码
    Name = ord('国')
    print(Name)
    # "国" 22269
    Name_ = chr(Name)
    print(Name_)
    # b'xx' 表示字节码
    # "中国" b'\xe4\xb8\xad\xe5\x9b\xbd'
    print("中国".encode("utf-8")) 
    # len 计算字符长度
    print(len("hello world"))
    # 文本格式化 
    print("%d周年" % 70)
    # format() 格式化方法
    print("{0}周年".format(70))
    

    说明:

    • encode()编码;decode()进行解码;
    • 指定编码类型,如果超出编码范围,就会报错;中文超出ASCII;
    • %s 字符串;%d整数;%f浮点数;%x十六进制数;%%转义输出%
    • format()格式化方法;
  6. 数据结构list

    # list 
    names = ["花花","小亮","明总"]
    print(names[0])
    # udpate 
    names[0] = 70;
    
    # tuple 元组
    names_ = (1949,2019,70)
    print(names_[2])
    

    说明

    • append() 往后添加一个元素;insert(index,name)插入元素到指定位置;pop()删除末尾元素;
    • 元组具有不可变性,即其中的元素一经初始化是不能改变的;
    • 元组中元素指向的是一个对象,那对象属性的改变是没有关系的。
    • 元组定义一个元素是(12)会存在算数歧义,为了区分如此声明(12,)
  7. 循环

    # for ... in 循环
    for item in names:
        print(item)
    # while 循环
    num = 3
    while num>1:
        print(num*2)
        num = num-1
    

    说明:
    range(11)生成0-10的整数序列;
    break跳出循环;
    continue跳过本次循环;

  8. 使用dict字典。
    类似对象、以键值对存储数据;

    # dict
    user = {"袁明":23,"鲁花":32,"祖国":70}
    print(user["祖国"])
    # keys() / values() / items()
    for key in user.keys():
        print(key,user[key])
    # set 只存储值,不重复
    age = set([23,32,70,32])
    print(age)
    

说明:

  • ... in ...判断key值是否存在于字典中;
  • get()获取值,不存在返回none,接受第二个参数作为不存在时的返回值;
  • pop()删除一个键值对;
  • add()set中添加一个值;remove()则移除一个值;
  • values()返回字典值集合;keys()返回键值集合;items()key,value进行迭代处理;
  1. 函数

    # 系统内置函数 , 如 abs() 求绝对值
    abs(-100)
    # 自定义函数
    def add(num1,num2):
        return num1+num2
    print(add(100,1))
    # 返回多个值,类似解构赋值
    def add(num1,num2):
        return num1,num2
    res1,res2 = add(100,1)
    print(res1,res2)
    # 函数可变参数
    def add(*nums):
        total = 0
        for n in nums:
            total+=n
        return total
    print(add(3,4,5,6))
    # 函数关键参数,即必须传入的参数和可选参数,
    def addUser(name,**other):
        print({"name":name,"other":other)
    addUser("祖国",age=70,desc="生日快乐!")
    # 参数传入时,可传入 dict , 
    info = {"age":70,"desc":"生日快乐!"}
    addUser("祖国",**info)
    
    # 命名关键字,即指定可选参数的名称 ,以下 只能传递 'age'属性
    def addUser(name,*,age):
    print({"name":name,"other":age})
    addUser("祖国",age=70)
    

    说明:

    • max()最大值;内置函数规定了参数类型,参数个数,不合规则就报错;

    • 没有给定返回值的函数,默认返回none;

    • 返回多个值时,可以进行解构复制,赋值给变量进行使用;

    • 函数参数定义,接受默认参数定义def add(num1,num2=70)

    • 模拟可变参数:

       传入list对象,模拟传递不确定个数的参数;

      *定义参数为可变参数;

      **定义参数为可选参数;

    • 参数传入时,**会转换对象,按键值对传入到 **other

  2. 尾递归优化
    之前js 也写过:es6 函数扩展
    代码比较短,贴一下:

    //尾调用优化
    function factorial(n,total){
        if(n===1) return total;
        return factorial(n-1,n*total);
    } 
    

    意义在于每次调用都能获得累积值,并作为参数传入下一次调用函数中。

    # total作为上一次函数调用后计算的值,传入下一个参数
    def factorial(n,total):
        if n==1:
            return total
        return factorial(n-1,n*total)
    print(factorial(10,1))
    

注意:

  • if语句、while语句、函数定义等含有语句块的都有:,且语句块需要缩进;

附所有代码执行结果:

在这里插入图片描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容