python3入门与进阶(二)

来源:互联网 发布:小米电力猫网络密码 编辑:程序博客网 时间:2024/06/05 20:25

变量

python3中变量的定义是不固定类型的(动态),区分大小写

值类型 引用类型 不可变的(值类型) 可变的(引用类型) int (整型) list (列表) str (字符串) set (集合) tuple (元组) dict (字典)

- 通过内置函数id(),可以知道变量在内存的位置

b = "icessun"b = b + "hello"print(b)>>> "icessunhello"  # 不是说字符串是不可变的嘛?怎么改变了

如果字符串可以改变,那么可以使用索引值给字符串赋值"python"[0] = 'h' -----> 报错,会发现报错,是不行的。

上面程序的结果是因为,+连接符,把两个字符串连接起来了,链接起来的值重新赋值给了b元素,使用id(b)函数,会发现其实上面两个b变量在内存的位置是不一样的,所以第一个b变量的值没有改变,被覆盖了。

  • 乘方的表示法 :2**5 ----> 2的5次方=32
身份运算符

is / not is

a = (1,2,3)b = (1,3,2)print(a is b)    # 元组是不可变的print(a == b)  # 元组是有序的,值是不相等的>>> False    False# 集合a = {1,2,3}b = {1,3,2}print(a==b)  # 集合是无序的,所以值是相等的print(a is b)>>> True False# 字符串,数字   两个取值相等,则is 返回True,但是数字有特殊a = 'icessun'b = 'icessun'print(a is b)>>> Truea = 1   b = 1c = 1.0print(a==b)print(a==cprint(a is b)print(a is c)>>> True  True True False

从上面可以看出,元组是不可变的,改变里面元素的位置就变成了两个新的元组。is不是比较两个变量的值是否相等,而是比较变量在内存的地址是否相等,算术运算符==是比较值是否相等的

对象的三个特性 一切都是对象 id()函数:变量在内存的地址 is :身份运算符 type()函数:类型判断函数 isinstance(变量,(int,str,float….)) value值的比较 == :算术比较符
成员运算符

判断一个变量是否在一个变量里面 in / not in

b= 'a'b in {'c':1}>>> Falseb=1b in {'c':1}>>> Falseb='c'b in {'c':1}>>> True
  • 优先级:not > and > or

代码编写

  • 缩进来区分代码块,没有大括号{ }
  • pass:占位语句
  • 常量一般大写
  • 单行注释:#;推荐在这行语句的开头写,与上一条语句有空格
  • 多行注释:'''注释内容'''
  • 代码后面不需要分号,有也可以
if else / elseif
a = input()a = int(a)print('a is ' + str(a))if a==1:    print('apple')elif a==2:    print('orange')elif a==3:    print('banana')else:    print('shoppingp')# 使用 if  elseif a==1:    print('apple')else:    if a==2:        print('orange')    else:        if a==3:            print('banana')        else:            print('shopping')

input()接收用户的输入,elif功能类似于switch功能;
int(a):因为终端输入的是字符串,所以应该强制转为数字进行比较
print('a is ' + str(a)):字符串的拼接只能两者都是字符串,否者会报错

for 变量 in 循环体

主要用来遍历循环:序列List,集合Set,字典Dict

a = [['apple','orange','banana','grape'],(1,2,3)]for x in a:    for y in x:        if y=='orange':            break   #  continue        print(y)  # 默认是换行(print(y,end='/n'))输出的,要想不换行:print(y,end=' ');故可以在end里面添加其他的符号来连接字符else:    print('fruit is gone')>>> apple 1 2 3 fruit is gone

break跳出里面的for循环,但是外面的for循环没有跳出,还是会执行;和else配对的是外面的for循环,所以依然会执行;要是在外层的for循环里面加入break,那么就不会执行else语句;for循环后面有else语句,当循环执行完毕,也会依然接着执行else语句,所以会输出fruit is gone;一般不推荐在for循环后面使用else语句

  • 循环中使用range()函数
for x in range(0,10):    print(x,end='|')>>> 0|1|2|3|4|5|6|7|8|9|for x in range(10,0,-2):    print(x,end='|')>>> 10|8|6|4|2|# 打印列表a中所有的基奇数项a=[1,2,3,4,5,6,7,8]# 循环+range()函数的方法for x in range(0,len(a),2):    print(a[x]) # 列表的切片的方法print(a[0:len(a):2])>>> [1,3,7]

range()函数的作用类似于其他语言中的for(i = 初始值;i < 长度;i ++);里面可以传入两个或者三个参数,两个参数的时候表示的是:初始值,长度;传入三个参数的时候表示的是:初始值,长度,步长

序列解包
def ice(a,b):    a1=a*3    b1=b*2+10    return a1,b1ice_a1,ice_b1 = ice(3,6)print(ice_a1,ice_b1)>>> 9 22

序列解包的意思就是当一个函数有多个返回值的时候,不需要使用一个变量接收到所有的返回值,然后又重新遍历返回值,取到对应的返回值;只需要使用和返回值个数对等的变量依次接收就行;当然只是针对返回值是值类型的函数

阅读全文
'); })();
1 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 徐丽丽中将 汤宣武紫砂壶价格 顾亚明紫砂壶价格 徐丽霞 讷河徐丽霞图片 徐丽霞91年大案的照片 徐乃麟 徐老太之子被开除 罪鬼之证徐祸 都市之修仙归来徐问道 徐图之 陆念之徐影帝念你在心 星际之长歌 徐王子阳 徐而察之 徐大夫系列之宝贝别怕 徐以杓酌油沥之 灵气时代的氪金高手 张徐之 徐航资料 徐二航 箭在弦上徐二航 徐二航的扮演者 云飞简介 徐云龙 徐亚洲 徐亚洲为什么是中国人 徐漫陆亦深免费阅读 陆亦深徐漫免费全文 陆亦深徐漫全文目录 徐漫陆亦深全文免费阅读 徐漫陆亦深章节目录 第13章报复的开始徐漫陆亦深 徐仁国 徐仁国承认与朴宝蓝分手 徐仁国承认与朴宝蓝恋爱 徐仁国的电视 徐仁国眼睛怎么回事 徐仁英 徐以若 仲由 徐传钰 徐佳宁