设为首页 收藏本站
查看: 946|回复: 0

[经验分享] 初识Python(三)

[复制链接]

尚未签到

发表于 2018-8-6 11:04:37 | 显示全部楼层 |阅读模式
  一、作用域
  对于变量的作用域,执行声明并在内存中存在,该变量就可以在后续的代码中使用;
  外层变量,可以被内层变量使用;内层变量,也可以被外层变量使用;
  如下示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
if 1==1:
  
    name1 = 'user1'
  

  
name2 = name1
  

  
print name2
  执行结果如下:
DSC0000.png

  二、各种进制的表示方法

  •   二进制,01
  •   八进制,01234567
  •   十进制,0123456789
  •   十六进制,0123456789ABCDEF
bin()    #把变量转换为2进制  
oct()    #把变量转换为8进制
  
int()    #把变量转换为10进制
  
hex()    #把变量转换为16进制
  三、Python基础
  对于Python,一切事物都是对象,对象基于类创建(或者说对象是由类来创建);
DSC0001.jpg

  在Python中任何一个对象都是有自己的类,任何一个对象属性都是由自己的类的方法引用而来;
  如字符串类:
DSC0002.jpg

  如数字类:
DSC0003.jpg

  四、运算符
  1、算数运算符
  假设变量a为10,变量b为20:
运算符描述实例+加,两个对象相加a + b 输出结果 30-减,得到负数或是一个数减去另一个数a - b 输出结果 -10*乘,两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 200/除,x除以yb / a 输出结果 2%取模,返回除法的余数b % a 输出结果 0**幂,返回x的y次幂a**b 为10的20次方,输出结果 100000000000000000000//取整除,返回商的整数部分9//2 输出结果 4 , 9.0//2.0 输出结果 4.0  算术运算符示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 21
  
b = 10
  
c = 0
  

  
c = a + b
  
print '1 - c 的值为:', c
  

  
c = a - b
  
print '2 - c 的值为:', c
  

  
c = a * b
  
print '3 - c 的值为:', c
  

  
c = a / b
  
print '4 - c 的值为:', c
  

  
c = a % b
  
print '5 - c 的值为:', c
  

  
# 修改变量 a 、b 、c
  
a = 2
  
b = 3
  
c = a**b
  
print '6 - c 的值为:', c
  

  
a = 10
  
b = 5
  
c = a//b
  
print '7 - c 的值为:', c
  执行结果如下:
DSC0004.png

  2、比较运算符
  假设变量a为10,变量b为20:
运算符描述实例==等于,比较对象是否相等(a == b) 返回 False!=不等于,比较两个对象是否不相等(a != b) 返回 true<>不等于,比较两个对象是否不相等(a <> b) 返回 true这个运算符类似 != >大于,返回x是否大于y(a > b) 返回 False<小于,返回x是否小于y所有比较运算符返回1表示真,返回0表示假这分别与特殊的变量True和False等价注意,这些变量名的大写(a < b) 返回 true>=大于等于,返回x是否大于等于y(a >= b) 返回 False<=小于等于,返回x是否小于等于y(a <= b) 返回 true  比较运算符示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 21
  
b = 10
  
c = 0
  

  
if ( a == b ):
  
    print '1 - a 等于 b'
  
else:
  
    print '1 - a 不等于 b'
  

  
if ( a != b ):
  
    print '2 - a 不等于 b'
  
else:
  
    print '2 - a 等于 b'
  

  
if ( a <> b ):
  
    print '3 - a 不等于 b'
  
else:
  
    print '3 - a 等于 b'
  

  
if ( a < b ):
  
    print '4 - a 小于 b'
  
else:
  
    print '4 - a 大于等于 b'
  

  
if ( a > b ):
  
    print '5 - a 大于 b'
  
else:
  
    print '5 - a 小于等于 b'
  

  
#修改变量 a 和 b 的值
  
a = 5
  
b = 20
  

  
if ( a <= b ):
  
    print '6 - a 小于等于 b'
  
else:
  
    print '6 - a 大于  b'
  

  
if ( b >= a ):
  
    print '7 - b 大于等于 a'
  
else:
  
    print '7 - b 小于 a'
  执行结果如下:
DSC0005.png

  3、赋值运算符
  假设变量a为10,变量b为20:
运算符描述实例=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c+=加法赋值运算符c += a 等效于 c = c + a-=减法赋值运算符c -= a 等效于 c = c - a*=乘法赋值运算符c *= a 等效于 c = c * a/=除法赋值运算符c /= a 等效于 c = c / a%=取模赋值运算符c %= a 等效于 c = c % a**=幂赋值运算符c **= a 等效于 c = c ** a//=取整除赋值运算符c //= a 等效于 c = c // a  赋值运算符示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 21
  
b = 10
  
c = 0
  

  
c = a + b
  
print '1 - c 的值为:', c
  

  
c += a
  
print '2 - c 的值为:', c
  

  
c *= a
  
print '3 - c 的值为:', c
  

  
c /= a
  
print '4 - c 的值为:', c
  

  
c = 2
  
c %= a
  
print '5 - c 的值为:', c
  

  
c **= a
  
print '6 - c 的值为:', c
  

  
c //= a
  
print '7 - c 的值为:', c
  执行结果如下:
DSC0006.png

  4、位运算符
  按位运算符是把数字看作二进制来进行计算的;在Python中的按位运算法则如下:
  假如变量a为60,b为13,二进制格式如下:
a = 0011 1100  

  
b = 0000 1101
  

  
-----------------
  

  
a&b = 0000 1100
  

  
a|b = 0011 1101
  

  
a^b = 0011 0001
  

  
~a  = 1100 0011
运算符描述实例&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111  位运算符示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
#60二进制:0011 1100
  
a = 60
  

  
#13二进制:0000 1101
  
b = 13
  

  
c = 0
  

  
#12二进制:0000 1100
  
c = a & b;
  
print '1 - c 的值为:', c
  

  
#61二进制:0011 1101
  
c = a | b;
  
print '2 - c 的值为:', c
  

  
#49二进制:0011 0001
  
c = a ^ b;
  
print '3 - c 的值为:', c
  

  
#-61二进制:1100 0011
  
c = ~a;
  
print '4 - c 的值为:', c
  

  
#240二进制:1111 0000
  
c = a << 2;
  
print '5 - c 的值为:', c
  

  
#15二进制:0000 1111
  
c = a >> 2;
  
print '6 - c 的值为:', c
  执行结果如下:
DSC0007.png

  5、逻辑运算符
  假设变量a为10,b为20:
运算符逻辑表达式描述实例andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值(a and b) 返回 20orx or y布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值(a or b) 返回 10notnot x布尔"非" - 如果 x 为 True,返回 False 如果 x 为 False,它返回 Truenot(a and b) 返回 False  逻辑运算符示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 10
  
b = 20
  

  
if ( a and b ):
  
    print '1 - 变量 a 和 b 都为 true'
  
else:
  
    print '1 - 变量 a 和 b 有一个不为 true'
  

  
if ( a or b ):
  
    print '2 - 变量 a 和 b 都为 true,或其中一个变量为 true'
  
else:
  
    print '2 - 变量 a 和 b 都不为 true'
  

  
#修改变量a的值
  
a = 0
  

  
if ( a and b ):
  
    print '3 - 变量 a 和 b 都为 true'
  
else:
  
    print '3 - 变量 a 和 b 有一个不为 true'
  

  
if ( a or b ):
  
    print '4 - 变量 a 和 b 都为 true,或其中一个变量为 true'
  
else:
  
    print '4 - 变量 a 和 b 都不为 true'
  

  
if not( a and b ):
  
    print '5 - 变量 a 和 b 都为 false,或其中一个变量为 false'
  
else:
  
    print '5 - 变量 a 和 b 都为 true'
  执行结果如下:
DSC0008.png

  6、成员运算符
  除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组;
运算符描述实例in如果在指定的序列中找到值返回 True,否则返回 Falsex 在 y 序列中 , 如果 x 在 y 序列中返回 Truenot in如果在指定的序列中没有找到值返回 True,否则返回 Falsex 不在 y 序列中 , 如果 x 不在 y 序列中返回 True  成员运算符示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 10
  
b = 20
  
list = [1, 2, 3, 4, 5 ]
  

  
if ( a in list ):
  
    print '1 - 变量 a 在给定的列表中 list 中'
  
else:
  
    print '1 - 变量 a 不在给定的列表中 list 中'
  

  
if ( b not in list ):
  
    print '2 - 变量 b 不在给定的列表中 list 中'
  
else:
  
    print '2 - 变量 b 在给定的列表中 list 中'
  

  
#修改变量a的值
  
a = 2
  

  
if ( a in list ):
  
    print '3 - 变量 a 在给定的列表中 list 中'
  
else:
  
    print '3 - 变量 a 不在给定的列表中 list 中'
  执行结果如下:
DSC0009.png

  7、身份运算符
  身份运算符用于比较两个对象的存储单元;
运算符描述实例isis是判断两个标识符是不是引用自一个对象x is y, 如果>身份运算符示例:#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 20
  
b = 20
  

  
if ( a is b ):
  
    print '1 - a 和 b 有相同的标识'
  
else:
  
    print '1 - a 和 b 没有相同的标识'
  

  
if ( id(a) is not id(b) ):
  
    print '2 - a 和 b 有相同的标识'
  
else:
  
    print '2 - a 和 b 没有相同的标识'
  

  
#修改变量b的值
  
b = 30
  

  
if ( a is b ):
  
    print '3 - a 和 b 有相同的标识'
  
else:
  
    print '3 - a 和 b 没有相同的标识'
  

  
if ( a is not b ):
  
    print '4 - a 和 b 没有相同的标识'
  
else:
  
    print '4 - a 和 b 有相同的标识'
  执行结果如下:
DSC00010.png

  8、运算符优先级
  python所有运算符,从最高到最低优先级如下:
运算符描述**指数 (最高优先级)~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* / % //乘,除,取模和取整除+ -加法减法>> <<右移,左移运算符&位 'AND'^ |位运算符<= < > >=比较运算符<> == !=等于运算符= %= /= //= -= += *= **=赋值运算符is is not身份运算符in not in成员运算符not or and逻辑运算符  运算符优先级示例:
#!/usr/bin/env python  
# -*- coding: UTF-8 -*-
  

  
a = 20
  
b = 10
  
c = 15
  
d = 5
  
e = 0
  

  
#( 30 * 15 ) / 5
  
e = (a + b) * c / d
  
print '(a + b) * c / d 运算结果为:',  e
  

  
#(30 * 15 ) / 5
  
e = ((a + b) * c) / d
  
print '((a + b) * c) / d 运算结果为:',  e
  

  
# (30) * (15/5)
  
e = (a + b) * (c / d);
  
print '(a + b) * (c / d) 运算结果为:',  e
  

  
#20 + (150/5)
  
e = a + (b * c) / d;
  
print 'a + (b * c) / d 运算结果为:',  e
  执行结果如下:
DSC00011.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-547533-1-1.html 上篇帖子: python之switch的实现 下篇帖子: 开始我的python之旅--Python简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表