【无标题】

Python学习日志(2022-7-11):

学习内容:

1.数字类型

python有三种数字类型:整数,浮点数和复数。
在python中浮点数的计算可能没有那么精确。如

>>> 0.1+0.2
0.30000000000000004
>>> 0.3 == 0.1+0.2
False
>>> 

这时想要获得一个准确的值就要通过decimal实例化一个对象,如

>>> import decimal
>>> a = decimal.Decimal('0.1')
>>> b = decimal.Decimal('0.2')//0.1与0.2都是字符串
>>> print(a+b)
0.3

对于复数,赋给变量是以浮点数的形式存放。

>>> x = 1 + 2j
>>> print(x)
(1+2j)
>>> x.real
1.0
>>> x.imag
2.0
>>> pow(2,5)
32
>>> abs(3+4j)
5.0
>>> 5/3
1.6666666666666667
>>> 5//3
1
>>> -5//3
-2
>>> 

2.布尔类型

bool()函数大部分时候都是true,为False的情况屈指可数:

1.定义为False的对象

None和Flase

>>> bool('false')//字符串只要不为空都是ture
True
>>> bool(False)
False
2.值为0的数字类型

0 、0.0 、0j 、Decimal(0) 、Fraction(0,1)

>>> bool(5)
True
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool(0j)
False
3.空的序列和集合

3.逻辑运算符

and,or,not也即布尔的与或非,但在逻辑运算符中还会出现短路逻辑:

>>> 3 and 4//这里由于3为ture,需要继续确定4的布尔类型才能确定式子的值,故为4
4
>>> 0 and 4//这里由于0为flase直接确定了式子的值,故为0
0
>>> 3 or 4//这里由于3为ture直接确定了式子的值故为3
3
>>> 0 or 4
4
>>> (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
4

也即输出影响结果的关键值。同时运算符还有优先级,在运算时要查表。

4.分支结构

可以通过下面的例子学习

counts = 4

while(counts):
    counts = counts - 1
    score = input("请输入你的分数:")
    score = int(score)

    if 0<=score<=60:
       print("建议remake")

    elif 60<score<=80:
       print("没关系,下次继续努力")

    elif 80<score<=95:
       print("扎布多德勒")

    elif 95<score<=100:
       print("不需要这么卷的人,建议remake")
    else:
        print("分数打错了哦")

>>> a = 3
>>> b = 5
>>> small = a if a<b else b
>>> print(small)
3

5.循环

可以从下面的例子学习

i=0

while i<10:
    i+=1
    if i%2 == 0:
        continue//跳出本轮循环
    print(i)
1
3
5
7
9      

while也可以与else配合通过break检测跳出循环的状况。

i = 0

while i<10:
    j=1
    while j<=i:
        print(i , "*" , j , "=" , i*j, end=" ")
        j+=1
    print()
    i+=1   
    
1 * 1 = 1 
2 * 1 = 2 2 * 2 = 4 
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 
>>> for i in range(1,11,2):
	print(i)
	
1
3
5
7
9 
>>> for i in range(11,1,-2):
	print(i)
	
11
9
7
5
3
for n in range(1,100):
    for x in range(2,n):
        if(n%x == 0):
           print(n,"=",x,"*",n//x)
           break
    else:
        print(n,"是一个素数")

6.列表

可以从如下代码学习

>>> rhyme = ['小',"黑","子","show show way"]
>>> for each in rhyme:
	print(each)

	
小
黑
子
show show way
>>> rhyme[-1]
'show show way'
//列表切片
>>> rhyme[:3]
['小', '黑', '子']
>>> rhyme[3:]
['show show way']
>>> rhyme[0:3:2]
['小', '子']
>>> rhyme[::-1]
['show show way', '子', '黑', '小']
>>> heros = ['迪迦','盖亚','戴拿']
>>> heros.append('高斯')
>>> heros
['迪迦','盖亚','戴拿', '高斯']
>>> heros.extend(['赛文','佐菲'])
>>> heros
['迪迦','盖亚','戴拿', '高斯', '赛文','佐菲']
>>> heros.remove('赛文')
>>> heros
['迪迦','盖亚','戴拿', '高斯', '佐菲']
>>> heros.pop(1)
'盖亚'
>>> heros
['迪迦', '盖亚','戴拿', '高斯', '佐菲']
>>> heros.clear()
>>> heros
[]
>>> heros=['迪迦','盖亚','戴拿', '高斯', '赛文','佐菲']
>>> heros[4]='赛罗'
>>> heros
['迪迦','盖亚','戴拿', '高斯', '赛罗','佐菲' ]
>>> heros[3:]//切片包括前面的3
['高斯', '赛罗','佐菲']
>>> heros[:3]//切片不包括后面的3
['迪迦','盖亚','戴拿']

>>> s=[1,2,3,4]
>>> s[len(s):]=[5,6]//切片
>>> s
[1, 2, 3, 4, 5, 6]


>>> s=[1,3,4,5]
>>> s.insert(1,2)
>>> s
[1, 2, 3, 4, 5]
>>> s.insert(0,0)
>>> s.insert(len(s),6)
>>> s
[0, 1, 2, 3, 4, 5, 6]

>>> num=[8,4,9,5,1,7,8,4]
>>> num.sort()//排序
>>> num
[1, 4, 4, 5, 7, 8, 8, 9]
>>> num.reverse()
>>> num
[9, 8, 8, 7, 5, 4, 4, 1]

>>> num=[8,4,9,5,1,7,8,4]
>>> num.sort(reverse=True)
>>> num
[9, 8, 8, 7, 5, 4, 4, 1]

>>> num=[8,4,9,5,1,7,8,4]
>>> num.count(4)//4出现的次数
2
>>> num.index(4)//索引第一个4的下标
1
>>> num.index(4,2,8)//查找在2-8内(包括2,不包括8)
7

>>> num[num.index(5)]=11//如果元素较多,不知道下标,可使用此方法对元素进行操作
>>> num
[8, 4, 9, 11, 1, 7, 8, 4]
>>> num1=num.copy()
>>> num1
[8, 4, 9, 11, 1, 7, 8, 4]

>>> s=[1,2,3]
>>> t=[4,5,6]
>>> s+t
[1, 2, 3, 4, 5, 6]
>>> s*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

>>> matrix=[[1,2,3],[4,5,6],[7,8,9]]//二维列表
>>> for i in matrix:
	for each in i:
		print(each,end=" ")
	print()
	
1 2 3 
4 5 6 
7 8 9

>>> A=[1,1,1]
>>> for i in range(3):
	A[i] = [1]*3

	
>>> A
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]//快速创建二维列表,A[i]中的元素替换成列表。

>>> x=[1,2,3]
>>> y=x//只是将y牵引到与x同一个标签,x与y指向同一个列表
>>> x[1]=4
>>> x
[1, 4, 3]
>>> y
[1, 4, 3]
>>> x=[1,2,3]
>>> y=x.copy()//复制新的列表
>>> x[1]=4
>>> x
[1, 4, 3]
>>> y
[1, 2, 3]

>>> A
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
>>> B=A
>>> B
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
>>> A[1][1]=2
>>> A
[[1, 1, 1], [1, 2, 1], [1, 1, 1]]
>>> B
[[1, 1, 1], [1, 2, 1], [1, 1, 1]]
>>> import copy
>>> B=copy.deepcopy(A)//深拷贝,拷贝了列表所有的子对象,适用于嵌套列表,而A.cpoy()则不适合。

>>> B
[[1, 1, 1], [1, 2, 1], [1, 1, 1]]
>>> A[2][2]=3
>>> A
[[1, 1, 1], [1, 2, 1], [1, 1, 3]]
>>> B
[[1, 1, 1], [1, 2, 1], [1, 1, 1]]
>>> 

>>> a=[1,2,3,4,5]
>>> for i in range(len(a)):
	a[i]=a[i]*2
	
>>> a
[2, 4, 6, 8, 10]
>>> a=[i*2 for i in a]//列表推导式
>>> a
[4, 8, 12, 16, 20]

>>> a=[i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a=[i+1 for i in range(10)]//注意range(10)是0-9而不是1-10
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> a = [f*2 for f in "love"]//字符串同样没问题
>>> a
['ll', 'oo', 'vv', 'ee']
>>> a
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> b=[row[1] for row in a]
>>> b
[2, 2, 2]

>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> b=[a[i][i] for i in range(len(a))]
>>> b
[1, 5, 9]

>>> s = [[0]*3 for i in range(3)]//使用列表推导式能更为快速的创建二维列表
>>> s
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
b=[i for i in range(10) if i%2==0]
>>> b
[0, 2, 4, 6, 8]

>>> gword = [w for w in words if w[0]=='g']
>>> gword
['great', 'gg', 'gdp']


>>> c=[]
>>> for row in a:
	for col in row:
		c.append(col)		
>>> c
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a=[[1,2,3],[4,5,6,],[7,8,9]]
>>> b=[col for row in a for col in row]//前面的是外层循环,后面的是内层循环
>>> b
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a=[x+y for x in 'love' for y in '1314']
>>> a
['l1', 'l3', 'l1', 'l4', 'o1', 'o3', 'o1', 'o4', 'v1', 'v3', 'v1', 'v4', 'e1', 'e3', 'e1', 'e4']

>>> [[x,y] for x in range(10) if x%2 == 0 for y in range(10) if y%3 == 0]
[[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值