python3入门与进阶百度云_python3入门与进阶(二)

变量

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)

>>> True

a = 1

b = 1

c = 1.0

print(a==b)

print(a==c

print(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}

>>> False

b=1

b in {'c':1}

>>> False

b='c'

b in {'c':1}

>>> True

优先级:not > and > or

代码编写

缩进来区分代码块,没有大括号{ }

pass:占位语句

常量一般大写

单行注释:#;推荐在这行语句的开头写,与上一条语句有空格

多行注释:'''注释内容'''

代码后面不需要分号,有也可以

实例化一个对象,不需要new关键词

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 else

if 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,b1

ice_a1,ice_b1 = ice(3,6)

print(ice_a1,ice_b1)

>>> 9 22

a=1

b=2 ====> a,b,c=1,2,3 或者 (1,2,3) 当abc都相等的时候:a=b=c=1 或者 a,b,c=1,1,1

c=3

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

当在函数参数里面使用的时候,可以在实参里面修改默认值;在调用函数传入参数的时候,明确告诉实参,形参给传的是那个实参的值sum(y=3,x=2)

文章来源:segmentfault,作者:icessun。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

3bd16c71c09c78ecd52251f00b4c6dfa.png

后台-系统设置-扩展变量-手机广告位-内容正文底部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值