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)


  

原文地址:https://www.cnblogs.com/liuliu-hai/p/8276685.html