ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python ( 学习基础篇 第二部 )

2020-10-25 19:32:19  阅读:210  来源: 互联网

标签:返回 运算符 0000 ... Python 学习 第二部 False True


目录

运算符
  算数运算符
  比较运算符
  赋值运算符
  位运算符
  逻辑运算符
  成员运算符
  身份运算符
  Python 中运算符的优先级
  运算符总结
基础语法
  判断类型 isinstence
  代码块
  流程控制
  while循环
  双向循环的金典例题
  for循环

 

 

运算符

算数运算符

运算符描述实例
+ 加 - 两个对象相加 a + b 输出结果 31
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 210
/ 除 - x 除以 y b / a 输出结果 2.1
% 取模 - 返回除法的余数 b % a 输出结果 1
** 幂 - 返回x的y次幂 a**b 为10的21次方
// 取整除 - 向下取接近商的整数 9//2>>>4 -9//2>>>-5

``

比较运算符

运算符描述实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于比较两个对象是否不相等 (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。

赋值运算符

运算符描述实例
= 简单的赋值运算符 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
:= 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符 在这个示例中,赋值表达式可以避免调用 len() 两次
if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

 

位运算符

#a 为 60,b 为 13


按位与 &
var1 = 19
var2 = 15
print(var1 & var2)

19的二进制
0000 ... 10011
15的二进制
0000 ... 01111

0000 ... 10011
0000 ... 01111
0000 ... 00011 => 3


 按位或 |
var1 = 19
var2 = 15
print(var1 | var2)

19的二进制
0000 ... 10011
15的二进制
0000 ... 01111

0000 ... 10011
0000 ... 01111
0000 ... 11111 => 31



按位异或 ^ 两个值不一样,返回真,否则返回假
1 0 => 1
1 1 => 0
0 0 => 0
0 1 => 1

var1 = 19
var2 = 15
print(var1 ^ var2)

19的二进制
0000 ... 10011
15的二进制
0000 ... 01111

0000 ... 10011
0000 ... 01111
0000 ... 11100 => 28



<< 左移 
""" 左移相当于做乘法 : 5 * 2的n次幂 """
res = 5 << 1 # 10
res = 5 << 2 # 20
res = 5 << 3 # 40
print(res)
0000 ...  101
0000 ... 1010  移动一位 10
0000    10100  移动二位 20


 >> 右移
""" 右移相当于做除法 : 5 // 2的n次幂 """
res = 5 >> 1 # 2
res = 5 >> 2 # 1
res = 5 >> 3 # 0
print(res)
0000 ...  101
0000 ...  010  移动一位 2
0000 ...  001  移动二位 1
0000 ...  000  移动三位 0



~ 按位非 (针对于补码进行操作,按位取反,包括符号位)
"""公式: -(n+1)"""
var1 = ~19
print(var1)
~ 按位非每一位都取反,包括符号位,求反码每一位除了符号位,都取反.
原码:0000 ... 10011
反码:0000 ... 10011
补码:0000 ... 10011

补码:     0000 ... 10011
按位非:   1111 ... 01100
给你补码求原码:
补码: 1111 ... 01100
反码: 1000 ... 10011
原码: 1000 ... 10100 => -20

var1 = ~(-22)
print(var1)
原码: 1000 ... 10011
反码: 1111 ... 01100
补码: 1111 ... 01101
补码:    1111 ... 01101
按位非:  0000 ... 10010
给你补码求原码:
正数 : 补码 = 反码 = 原码
原码:  0000 ... 10010 => 18

 

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

逻辑运算符

a 为 10, b为 20:
优先级 () > not > and > or
逻辑短路:
(1) True or 表达式
(2) False and 表达式
运算符表达式描述实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

成员运算符

运算符描述实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

身份运算符

运算符描述实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

Python 中运算符的优先级

算位比身成逻

运算符描述
* 指数(优先级最高
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,求余数和取整除
+ - 加法减法
>> << 左移 右移运算符
& 位 ‘AND’
^ 位运算符
<= < > >= 比较运算符
== != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

运算符总结

(1) 个别运算符:
优先级最高 ** 幂运算
优先级最低 = 赋值运算符
() 括号可以提升运算优先级

(2) 整体 一元运算符 > 二元运算符
一元运算符: 同一时间,只操作一个值 - ~
二元运算符: 同一时间,操作两个值 + - * / …

(3) 同一层级
逻辑: () > not > and > or
算数: 乘除 > 加减
位运算符: ( << >> ) > & > ^ > |

(4) 其他运算符
算数运算符 > 位运算符 > 比较运算符 > 身份运算符> 成员运算符 > 逻辑运算符
赋值运算符是最后算完进行赋值,做收尾工作的.

基础语法

判断类型 isinstence

    1. 语法:
      用法一 :
      isinstance(要判断的值,要判断的类型) 返回True 或者 False
      用法二:
      isinstance(要判断的值,(可能的类型1,可能的类型2,可能的类型3 … ) ) 如果有一个类型满足,返回的是True 否则 返回False
    2. 数据类型:
      int float bool complex str list tuple set dict
      用法一
      res = isinstance(5,int)
      res = isinstance(“11223344”,str)
      res = isinstance([1,2,3],tuple)
      print(res)
      用法二
      res = isinstance(16, (str,list,tuple) )
      print(res)

代码块

    1. 代码块 : 以冒号作为开始,用缩进来划分作用域
    2. 作用域:作用的区域,作用的范围
    3. 代码块的注意点:
      “”“要么全都是一个tab缩进,要么全都是4个空格,不能混合使用”""
      if 10 == 10:
      print(100)
      print(200) # IndentationError

流程控制

    1. 流程: 代码执行的过程
    2. 控制: 对代码执行过程的一种把控
    3. 流程控制的三大结构
      1.顺序结构 : 默认代码依次从上到下执行
      2.分支结构 : 4种
      3.循环结构 : for while
    4. if 条件表达式
      1单项分支
      if
      2双向分支
      if else
      3多项分支
      if elif else
      4巢状分支
      if
      if
      if
      else
      else
      else

while循环

特点:

减少代码的冗余,提升代码的效率

语法:

while 条件表达式:
code1…
code2…
1.初始化一个变量
2.写上循环的判断条件
3.自增自减的变量值

 栗子:

方法一
i = 1
total = 0
while i<=100:
 # 把所有的i值全部累加到total这个变量中
 total += i # total = total + i
 i+=1
print(total)
方法二
total = 0
i = 1
sign = True
while sign: 
 total += i # total = total + i
 i+=1
 # 手动加上终止循环的条件
 if i == 101 :
  sign = False
print(total)

 

双向循环的金典例题

打印十行十列小星星(隔列换色小星星,两个循环)

i= 0 
while i< 10 :
    i= 0
    while i<10:
        if j % 2 == 0:
            print("★",end="")
        else:
            print("☆",end="")
        j+1
    print()
    i +=1

 99乘法表

i = 1
while i <10;
    j =1
    while j<i:
        print("%d*%d=%2d"%(i,j,i*j),end="")
        j +=1
    print()
    i+=1

 

for循环

 

    1. 特点:遍历, 孙欢, 迭代
    2. for主要用于遍历数据而提出,while在遍历数据时,有局限性
      for 变量 in 可迭代对象:
      code1
      code2
      可迭代对象(容器类型数据,range对象,迭代器)
    3. for循环遍历不等长的二级容器

 

container = [["刘聪","毛洪磊","余锐","张家豪"],("崔文君","张捷")]

for i in container:
    for j in i:    
        print(j)

      

       4. 遍历等长的二级容器

container = [["刘聪","毛洪磊","余锐","张家豪"],("崔文君","张捷")]

for i in container:
    for j in i:    
        print(j)
    1. renge对象
      range(开始值,结束值,步长)
      结束值本身取不到,取到结束值之前的那个数
    2. while 与 for
      while : 较为复杂的逻辑
      for : 数据的遍历
      while 和 for 部分代码可以互相转换
    3. 关键字的使用
      1pass 过(占位)
      2break 终止当前循环
      3continue 跳过当前循环,从下一次循环开始
      在while中注意在continue前加(i+=1).

 

标签:返回,运算符,0000,...,Python,学习,第二部,False,True
来源: https://www.cnblogs.com/f211/p/13874046.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有