Py赋值、浅拷贝、深拷贝的区别、if条件判断

第二天就这么开始了
今天可能比较乱
先写一下之前看别人提出的1个面试题,说是说一下Py的复制和浅拷贝和深拷贝的区别;这个对于我这个初学者有点难,于是就去百度了下,顺便记录下来
#这个是复制,完全把alist这个列表直接赋值给了b,原始的列表改变,直接能够导致b的改变

alist = [1,2,3,['a','b']]
b = alist
print (b)
alist.append(5)
print(alist)
print(b)

#这个是浅拷贝,浅拷贝随着原列表子元素的改变而改变,但是不能随着新增元素的增加而增加

alist = [1,2,3,['a','b']]
clist = copy.copy(alist)
print (clist)
alist.append(5)
print (alist)
print (clist)
\# [1, 2, 3, ['a', 'b'], 5]
\# [1, 2, 3, ['a', 'b']]
alist[3].append(5)
print (alist)
print (clist)
#[1, 2, 3, ['a', 'b', 5], 5]
#[1, 2, 3, ['a', 'b', 5]]
del alist[0]
print (alist)
print (clist)

#这个是深拷贝,就是只拷贝了原来的列表,拷贝完之后不管原列表怎么改变,拷贝的列表都不会做任何改变

alist = [1,2,3,['a','b']]
d = copy.deepcopy(alist)
print (d)
alist.append(5)
print (alist)
print (d)
/# [1, 2, 3, ['a', 'b'], 5]
/# [1, 2, 3, ['a', 'b']]
alist[3].append(5)
print (alist)
print (d)
/# [1, 2, 3, ['a', 'b', 5], 5]
/# [1, 2, 3, ['a', 'b']]

二、接着说下if语法吧
流程控制
顺序结构:代码从上到下依次执行
条件结构:选择结构,进入分支 有选择的执行代码
循环结构:在某个条件下重复执行某段代码
if这个语法属于条件结构,即选择结构,进入分支 有选择的执行代码
语法的基本写法是:
if 布尔表达式或者是布尔值 :
条件语句
如果布尔表达式==T ,则执行条件语句
如果布尔表达式==F ,则不执行条件语句
input() 获取控制台输入,有返回值—字符串
int() 这个函数是进行数据类型转换
pass 空语句 避免预发错误,有时候不知道里面写什么的时候,可以先用pass
elif 在多个条件语句时,使用elif 下面跟条件语句
条件结构中如果满足某个条件进入分支之后,其他的条件语句就不在执行,直接结束
if 后面只要是非空,非零 则都会执行条件

if 1 :
    print ("我是真的")
if [] :
    print ("我是假的")

#此时执行的结果只会是"我是真的"

下面来个例子:输入手机号码,判断手机号码是联通、移动还是电信,如果超出11提示超出,非数字提示非法字符

telecom_Card = [133,149,153,173,177,180,181,189,199]
unicom_Card = [130,131,132,145,155,156,166,171,175,176,185,186,166]
mobile_Card = [134,135,136,137,138,139,147,150,151,152,157,158,159,172,178,182,183,184,187,188,198]
while True :
    tele = input("请输入你的手机号码:\n")
    a = tele[:3]
    if len(tele) == 11 and tele.isdigit() :
        if int(a) in telecom_Card:
            print('你输入的的手机号码是电信号码')
            break
        elif int(a) in unicom_Card:
            print('你输入的的手机号码是联通号码')
            break
        elif int(a) in mobile_Card:
            print('你输入的的手机号码是移动联通号码')
            break
        else:
            print("你输入的手机号码不是三大通讯商号码")
            continue
    elif len(tele) != 11:
        print("你输入的手机号码位数有误")
        continue
    else:
        print("你输入的手机号码含有非法字符")
        continue

好了,结束

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhaoXuWen23

你的鼓励是我的动力,持续更新中

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值