• python3 基础1


    python属于运行与服务端的编程语言:

    了解一门语言先了解其:

    数据类型:

      python中,数据类型可分为: Numbers(int float double) str bool dict tuple sets list  sets是一种特殊的 元组tuple

      对比javascript的数据类型;

    Number string boolean Object Function Null undefined

    很明显,python对 数分的更细;js中只有数,整数小数都是数; bool类型是一致的但取反却不一致 python 中 Not ; js中用 !;

    dict与json对象(其实与map对应更合适:)对应: set对应es6中的set ;set其实用list生成的; a=([1,2,3,4]);

    list与数组对应;

    条件判断:

    if xxx: elif:xxx else:xxx;

    循环:

    for in 和 wihle ; python中并没有单纯的for循环;

    函数定义:

    def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x

    来点小坑:

    判断一个对象是否为字符串:

    本来在js中就非常简单: typeof  obj=="string";

    而在py中:

    St1=" ___000000000000 ";
    ssss=123;
    dc=str(type(St1));
    print(dc[8:-2]);
    print(dc[8:-2]=="str");
    print(print(type(St1)));

    于是我很好奇:为什么还要转一下: type(str1)这个竟然不是字符串:

    后来发现其实也是有自带函数的:

    def str_(string):
        #第一步,判读是否是字符串
        if isinstance(string, str):
            print("传入的是字符串");
            return;
        else:
            print("对象不是一个字符串");
            return;
    str_(St1);

    初学难免有问题发现:

    来个疑惑点:

    a1=0;
    def cc():
        print(a1);   #没问题;
        if a1==0:
            print("a1等于0");
    cc();
    
    
    arr_list1=[1,2,3,4,56,9,2];
    zhi=0;#位置;
    re=0;#结果;
    def add_arr(obj):
        global zhi;
        global re;
        if zhi==len(obj):
            return re;
        else:
            re+=obj[zhi];
            zhi+=1;
            add_arr(obj);
    vv11=add_arr(arr_list1);
    #print("数组的和是:%d"%vv);
    print(vv11); #None
    print("数组求和的结果是:%d"%re);

    cc函数证明了,python中确实存在作用域链:

    那么第二个函数中,global就没有必要了,因为可以访问到外面的变量;但是去掉又会报错;记录在此,以后解决;

    python 中数据类型释疑,

    aa="11";
    bb=aa;
    print(aa,bb);
    aa="20";
    print(aa,bb);
    
    print("*"*50);
    
    
    list_a=[1,3,5];
    list_b=list_a;
    print(list_a);
    print(list_b);
    
    list_a.append(100);
    print(list_b);
    
    
    #现在统一总结为:python3中,所有的赋值均为引用;
    #那么你一定疑问了,如果是按引用传递的,那么上述的两个结果怎么会完全不一样呢?
    #在这里,我们把python 的数据类型分为,可变类型,和不可变类型;
    #当变量 aa="20",之后,实际上这种操作是不是重新赋值,意思是,aa本来是 "11";
    #而aa="20",后,相当于指向了另一个内存空间(因为字符串是不可变类型);
    
    #反观 list_a,重新改变本对象后(注意,不是整体的重新赋值),list_a也是受到影响;
    #为什么同样的操作对字符串和list不一样呢,还是那句话,list数据是可变的;
    

      

     对比javascript,也可以一句话总结,

    python中的不可变数据类型,相当于javascript的基本数据类型,可变数据类型(list tuple sets) 相当于javascript中的 (Array,function,object)


      

  • 相关阅读:
    贵有恒
    二叉树的中序遍历
    001.3或5的倍数
    静态成员的语法总结及应用-单例模式
    力扣42题(接雨水)
    算法笔记之二分查找
    素数筛算法之寻找每个数的最小素因子
    素数筛的算法感悟
    一维数组的逆序存放问题
    关于c++入门的几个基本代码之求和
  • 原文地址:https://www.cnblogs.com/liuliu-hai/p/8276685.html
Copyright © 2020-2023  润新知