Python入门(上)笔记

变量、运算符与数据类型

把阿里云Python入门(上)中自己不太熟悉的知识点摘录下来,以便于进行掌握:

2.运算符

位运算符

操作符名称
~按位取反
&按位取与
\|按位取或
^按位取异或
<<左移
>>右移
~4
# -5
# 这里为什么是这样呢?想想编码原理
 bin(~4)
# '-0b101'
bin(4^5)
# '0b1'

三元运算符

这个我经常忘记,一定要注意

x,y = 3,4
x if x > y else y
4

切记:for 和 if 同时使用时 for 在前 if 在后。

[i for i in range(10) if i % 2 ]
# [1, 3, 5, 7, 9]

4.数据类型转换

浮点数

如果我们想保留浮点型小数点后面的 n 位,可以使用 decimal 里面的 Decimalgetcontext() 方法来实现。

import decimal
from decimal import Decimal

decimal.getcontext()
# Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999,\
# Emax=999999, capitals=1, clamp=0, flags=[], \
# traps=[InvalidOperation, DivisionByZero, Overflow])

上面显示默认的精度为28位。(prec=28

Decimal(1)/Decimal(3)
# Decimal('0.3333333333333333333333333333')
decimal.getcontext().prec = 3
Decimal(1)/Decimal(3)
# Decimal('0.333')

获得类型信息

isinstance(1,int)
# True
type(1)
# int

要注意:type() 不会认为子类是一种父类类型,不考虑继承关系isinstance() 会认为子类是一种父类类型,考虑继承关系

5. print()函数

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按str()方式进行转换为字符串输出;

  • 关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;
  • 关键字参数end是输出结束时的字符,默认是换行符\n
  • 关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件;
  • 关键字参数flush是立即把内容输出到流文件,不作缓存。
shoplist = ['apple', 'mango', 'carrot', 'banana']
for item in shoplist:
    print(item, end='&')
#  apple&mango&carrot&banana&
shoplist = ['apple', 'mango', 'carrot', 'banana']
for item in shoplist:
    print(item, 'another string', sep='&')
# apple&another string
# mango&another string
# carrot&another string
# banana&another string

位运算

1. 原码、反码和补码

原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

反码:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反

补码:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。(即在反码的基础上+1)

3. 利用位运算实现快速计算

利用<<>>实现对于2倍数的乘除:

10 << 1
# 20
10 >> 1
# 5
10 >> 3
# 1

通过^ 快速交换两个整数:

a,b = 2,3
a ^= b
b ^= a
a ^= b
print(a,b)
# 3 2

通过 a & (-a) 快速获取a的最后为 1 位置的整数:

5 & (-5)
# 1
14 & (-14)
# 2

循环语句

6. enumerate()函数

关于enumerate()函数自己要注意的是该函数可以设置开始遍历的索引:

languages = ['Python', 'R', 'Matlab', 'C++']
for i, language in enumerate(languages, 2):
    print(i, 'I love', language)
 # 2 I love Python
 # 3 I love R
 # 4 I love Matlab
 # 5 I love C++
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值