Task01:变量、运算符、数据类型转换和位运算

Task01:变量、运算符、数据类型转换和位运算

这是TT的第一篇python学习记录,前前后后也看过几遍基础知识,但是终究是没有变成自己的东西,所以通过这次组队学习,希望可以有所产出。

思维导图

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简单输出代码练习1

a=2     #可以判断是否属于三种类型中的一种
print(isinstance(a,(int,str,list)))

apple=1024
print(bin(apple))
print(apple.bit_length())
#用于输出二进制表示和二进制长度

import decimal
from decimal import Decimal
box=decimal.getcontext()
print(box)#显示Decimal显示默认精准度为28(prec=28)
b=Decimal(2)/Decimal(9)
print(b)
decimal.getcontext().prec=4
c=Decimal(2)/Decimal(9)
print(c)
#用于控制浮点类型的小数点位数
print(type(''),bool(''),bool('python'))
print(type(()),bool(()),bool((10,)))
print(type([]),bool([]),bool([10,1]))
print(type({}),bool({}),bool({'a':1,'b':2}))
print(type(set()),bool(set()),bool({1,2}))
#可以初步识别(tuple)[list]{dict}set(集合)ps:dict类型中分隔符为逗号

print(int('520'))#字符串类型
print(int(520.52))#整型->浮点型
print(float('520.52'))#字符型->浮点型
print(float(520))#整型->浮点型
print(str(10.1+5.2))#浮点型->字符型
#在运行最后一个的时候出现了而报错,以后不要用str作为变量名

print()函数及代码2

print(object,sep='',end='\n',file=,flush=)

1.对于end的默认是换行
2.flush是流文件不作缓存
在下面的例子中,用到了一个小的循环结构,对于不同的print的要求可以输出不同的结果样式。在小的循环结构中可以每次输出list中的一项内容,并加以修饰。

shoplist=['apple','mango','carrot','banana']
print("This is printed without 'end' and 'sep'.")
for item in shoplist:
    print(item)
#没有参数时,每次输出都会换行


shoplist=['apple','mango','carrot','banana']
print("This is printed without 'end' and 'sep'&")
for item in shoplist:
    print(item,end='&')
print('hello world')
#每次输出结尾都有&

shoplist=['apple','mango','carrot','banana']
print("This is printed with 'sep'&")
for item in shoplist:
    print(item,'anthor string',sep='&')
#默认结尾换行,并且以&作为分隔,并且在打印的过程中实现了字符串的连接

奇妙的位运算

1.利用<< and >>可以实现快速计算2的倍数
n<<1:计算2倍
n>>1:计算1/2
n<<m:计算n的2的m次方
2.利用异或^可以实现交换两个整数

ya=11
yb=9
ya=ya^yb
yb=ya^yb
ya=ya^yb
print(ya,yb)

异或操作主要是不同的位置取1
3.利用位运算实现整数集合
{1,3,4,8}可以表示成0100011010
0100011010
9876543210

一点小结

1.变量的类型如果分为两类的话,一类是:基本类型(整型、浮点型、布尔型);容器类型(字符、元组、列表、字典和集合),变量在使用前要先赋值。
2.在比较两个变量时,若指向的地址是不可变的类型,如字符型,那么is和双等号是等价的。若指向的是可变类型,如list、dict、tuple,是有区别的。
3.is比较的是两个变量的内存地址
双等号比较的是两个变量的值
4.一元运算符优于二元运算符,一元就是运算过程有一个未知量,++就是一元运算符。
5.算数运算>位运算>逻辑运算
6.数据类型中的bool型在遇到整型的0,浮点型的0.0,容器变量的空变量时,均返回False.其余为True。
7.在python中bin将负数转化为负二进制

尚且存疑

1.type()不会认为子类是一种父类类型,不考虑继承关系?
[可能和class有关,尚未涉及]
2.利用位运算实现整数集合

练习题

leetcode:只出现一次的数字
给定一个非空的数组,除了某个元素值出现一次意外,其余每个元素均出现两次。找出那个只出现了一次的元素。
思考:考虑用异或^的思想:
一个数和0异或的结果是数本身
一个数和它本身异或的结果是0
异或满足交换律和结合律

from typing import List
class Solution:
    def Fnum( nums: List[int])->int:
        temp1=0
        for i in nums:
            temp1 = temp1 ^ i
        print(temp1)
        return
Solution.Fnum([2,3,2])

编写过程中出现的问题:
1.List一直显示没有定义,需要import
2.在调用的时候函数名前面要加上类名
3.列表的循环语句是 for i in list
4.return写在循环外,根据要print的内容考虑print的位置是否在循环内。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值