在小组开始学习之前,我已经自学过《python编程 从入门到实践》的基础部分,因此在小组学习时,压力不大,但是也暴露出了我之前学习的知识点不全面的问题,在这次学习中,我又学习到了不少的函数,方法,以及它们的应用。
下面主要列举一下这次多学到的知识以及对一些较难理解的知识的我的理解:
变量,运算符,数据类型
1.算术运算符中多学习了**//整除;(又叫地板除)
2.逻辑运算符中多学习了not非运算符;
3.位运算符:分为“按位运算(~,&,|,^)”和“移位运算(<<,>>)”;
4.三位运算符;
5.其他运算符中多学习了is**,is not,not in,相关知识在下面的练习题中有体现;
6.在本次学习中,我第一次见到了print(a,b)这样的打印形式,在我以前的自学过程中,遇到这种情况,我就会写成代码:print(a+","+b);
7.本次学习中,第一次知道了可以把1的浮点数直接写成 1.的形式,以前我就会写 1.000(至于几个零看心情) ;
8.多学习到了几个函数:
1)bin(x)------求x的二进制数,若x是正整数和长整型,则求出“0b”+“二进制数”;
若x是负整数,则求出“-0b”+“二进制数”;
若x是0,则求出“0b0”;
若x是字符串或列表,则发生错误。
若x是True或False,则求出“0b1”,“0b0”
2)type(x)-----求x的数据类型 ,输出结果形式是:
3)isinstance(object,classinfo)-----判断一个对象是否是一个已知类型或判断两个类型是否相等
4)函数bool(x),这里的x可以是:基本类型:int,float,bool
容器类型:字符串,集合,tuple,list,dict
5)函数dir()------带参数,返回参数的属性和方法列表
不带参数,返回当前范围内的变量,方法和定义的类型列表;
6)函数print(objects,sep=’’,end=’\n’,file=sys.stdout,flush=False)
这个函数中关键字参数sep默认为空字符,因此输出的字符串没有间隔;
函数的关键字参数end默认为‘\n’,因此每次输出后默认换行;
可以修改sep和end来改变输出的分隔符和输出结束时的字符
7)函数id(object)----查看object的内存地址
9.布尔值运算:
10.新学习的方法:
1)object.bit_length()-----求object的二进制的长度数
2)decimal包中的Decimal对象和方法getcontext()------保留小数点后n位(默认精度28位)
用法如下:
第一节练习题
1.怎样对python的代码进行注释?
单行整行注释,开头得用#;
三引号“”“ ”“”或‘’‘ ’‘’,引号中间可以多行注释,又称区间注释
2.python有哪些运算符,这些运算符的优先级是怎样的?
python中的运算符有:
算术运算符:+ - * / // % ;
比较(关系)运算符:>,<,>=,<=,==,!=
逻辑运算符:and or not
位运算符:分为“按位运算(~
三位运算符,eg:small=x if x
其他运算符:is,is not,in,not in
优先级(从左往右越来越低):1.一元运算符 二元运算符
2.算术运算符 移位运算符 按位运算符 关系运算符 逻辑运算符
赋值运算符
3.python中is,is not与==,!=的区别是什么?
如果两个变量都是内存地址不变的类型,则四个运算符是一样的;
如果两个变量都是内存地址改变的类型,则is,is not和==,!=是不一样的 :
is not和is对比的是两个变量的内存地址(可用函数id(object)来查看内存地址),
而==和!==对比的是两个变量的值
4.python中包含哪些数据类型?这些数据类型之间如何转换?
数据类型有:int类,float类,bool类,str类,tuple类,list类,dic类,set类
类型转换:int(x)—将x转换为整型
str(x)—将x转换为字符串
float(x)—将x转化为浮点型
bool(x)—将x转换为布尔型
eg:
位运算
leetcode 习题 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。尝试使用位运算解决此题。
题目说明:
“”"
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]
Output file
result1: 1
result2: 4
“”"
class Solution:
def singleNumber(self, nums: List[int]) -> int:
# your code here
不好意思,这个结构我没有看懂,因此只能用我学过的一些知识来编新的程序,且程序是可行的
编写文件solution.py
class Solution():
def init(self,nums):
self.nums=nums
def singleNumber(self):
for nump in range(0,len(self.nums)):
for numq in range(0,len(self.nums)):
if nump!=numq:
multiply=self.nums[nump]^self.nums[numq]
it=self.nums[nump]
if multiply==0:
it=’’
break
if it:
print(“result:”+str(self.nums[nump]))
else: continue
your_solution=Solution([1,1,5,9,4,5,4])
your_solution.singleNumber()
my_solution=Solution([4,2,1,2,4])
my_solution.singleNumber()
his_solution=Solution([5,6,8,6,1,5,8])
his_solution.singleNumber()
her_solution=Solution([5,6,9,8,6,8,5])
her_solution.singleNumber()
运行该文件后,翻译其中的到结果:
result:9
result:1
result:1
result:9
结果正如我们的预料,得到了那个只出现1次的数字。