阿里云天池Python学习打卡(1)

1.注释

在Python中,#表示单行注释,‘‘‘  ’’’或“ “ “    ” ” ”表示多行注释。

被注释的代码不参与运行。

2.运行符

操作符名称操作符名称
/~按位取反
//整除&按位与
%取余按位或
**^按位异或
and<<左移
or>>右移
not==等于

 

3.变量和赋值

(1)在使用变量之前,需要先对其赋值。

(2)变量名可以包括字母、数字、下划线,但不能以数字开头。

(3)Python 变量名大小写敏感,要区分,naa != Naa。

例如:

1

2

3

4

a1 = 3

a2 = 7

a3 = a1 + a2

printf(a3)

                                                        10

4.原码、反码和补码

二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用补码来表示

最高位为符号位,正数的符号位为 0, 负数的符号位为 1。比如,十进制中的数 +7 ,计算机字长为8位,转换成二进制就是 0 0 0 0 0 1 1 1(一个 byte 有 8bit,有效的取值范围是 -128 ~ +127)。如果是 -7 ,就是 1 0 0 0 0 1 1 1 。

原码:十进制数据的二进制表现形式就是原码,原码最左边的一个数字就是符号位,其他位为数据位。0为正,1为负。

00 00 00 11 -> 3
10 00 00 11 -> -3

(1)正数计算

使用原码对正数进行计算不会有任何问题的

例如:4 + 3

 0 0 0 0 0 1 0 0
+        0 0 1 1
-----------------
 0 0 0 0 0 1 1 1

把这个结果转成十进制刚好就等于 7,完全正确无误

(2)负数计算

负数的计算要先进行对应绝对值的运算,再加上负号,而用原码则不能直接计算。所以,反码出现了。反码的计算规则是正数的反码不变和原码一致,负数的反码会在原码的基础上,高位的符号位不变,其他位取反( 1 变成 0 , 0 变为 1 )。

反码正数的反码是其本身(等于原码),负数的反码是符号位保持不变,其余位取反。

00 00 00 11 -> 3
11 11 11 00 -> -3
十进制数字原码反码
+00000 00000000 0000
-01000 00001111 1111
-11000 00011111 1110
-21000 00101111 1101
-31000 00111111 1100

(1)负数计算

-56 的原码是 1 0 1 1 1 0 0 0 ,如果转成反码(符号位不变,其他位取反),

那么它的反码就是 1 1 0 0 0 1 1 1

  1 1 0 0 0 1 1 1
 -              1
-----------------
  1 1 0 0 0 1 1 0

-56 -1 = -57,-57 的原码是 1 0 1 1 1 0 0 1,转成反码刚好是 1 1 0 0 0 1 1 0。

(2)跨零计算

不过反码也有缺点,它无法进行跨零计算。

如 -3 + 5,-3 的原码是 1 0 0 0 0 0 1 1,转成反码的话就是 1 1 1 1 1 1 0 0

 1 1 1 1 1 1 0 0
+        0 1 0 1  
-----------------
 0 0 0 0 0 0 0 1 

计算结果转化为十进制是1,显然不正确。这时就需要用到补码了。

补码正数的补码是其本身,负数的补码等于其反码 +1。因为反码不能解决负数跨零(类似于 -6 + 7)的问题,所以补码出现了。

00 00 00 11 -> 3
11 11 11 01 -> -3
十进制数字原码反码补码
+00000 00000000 00000000 0000
-01000 00001111 11110000 0000
-11000 00011111 11101111 1111
-21000 00101111 11011111 1110
-1281000 0000

(1)跨零计算

现在用补码计算 -3 + 5 的结果,-3 的原码是 1 0 0 0 0 0 1 1,转成反码的话就是 1 1 1 1 1 1 0 0,再转成补码就是 1 1 1 1 1 1 0 1。

 1 1 1 1 1 1 0 1
+        0 1 0 1
----------------- 
 0 0 0 0 0 0 1 0

把这个数转成十进制刚好等于2,结果正确。

5.for循环

for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。

for结构如下:

for(初始化表达式 ; 循环控制语句 ; 增值表达式)
{
  语句序列
}

  例如:

1

2

3

A1 = {'a' : 1, 'b' : 2, 'c' : 3}

for value in A1.values():
     print(value, end = ' ')

                                                      1  2  3                 

6.for - else 循环

for-else循环:如果for循环正常结束,else中的语句正常执行。如果for循环中有break字段等导致for循环没有正常执行完毕,那么else中的内容就不会执行。

例如:找出2到10之间的素数,并且打印出来。

1

2

3

4

5

6

7

for n in range(2, 10):
     for x in range(2, n):
          if n % x == 0:
              print(n, 'equals', x, '*', n / x)
              break
     else:
          print(n,  'is a prime number')

         

              

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值