1 day25
2 1、打印如图所示图案,要求支持指定行数,但行数必须是奇数行
3 def print_img(num):
4 if num % 2 != 0:
5 b = num // 2+1
6 c = num // 2
7 d = [] # 1,2,3
8 for k in range(1,b):
9 d.append(k)
10 e = d[::-1]
11 f = d
12 f.append(b)
13 a = f+e
14 print(e,d,f)
15 for i in range(num):
16 print(a[i]*"*")
17
18
19 2.遍历list,并使用del删除某一个值得时候,提示下标越界了,原理就是当遍历的时候,长度已经写死了,这时候去删除,只会让长度减少,必然出现下标越界
20 思路:使用while处理
21 >>> a = [1,2,3,4,5]
22 >>> b = 0
23 >>> while b < len(a):
24 ... print(b)
25 ... if a[b] == 5:
26 ... del a[b]
27 ... b += 1
28 0
29 1
30 2
31 3
32 4
33 >>> a
34 [1, 2, 3, 4]
工作中遇到的问题,使用pymysql读取数据库,查询出来的数据类型是<class 'decimal.Decimal'>
Decimal 是Python自带的模块,主要用来快速正确的进行十进制浮点运算,效果优于float
在需要确保精度的场景多使用此模块
((Decimal('10000.00'),),)这是我从数据库查询返回的数据,通过type()发现此数据类型是 <class 'decimal.Decimal'>,转换为str类型 str(Decimal(需要转换的内容).quantize(Decimal(‘0.0’)))
quantize 量化,通过quantize四舍五入为固定长度的类型
>>> Decimal('1.35234234').quantize(Decimal('0.0'))
Decimal('1.4')
>>> Decimal('1.34234234').quantize(Decimal('0.00'))
Decimal('1.34')
>>> str(Decimal('1.35234234').quantize(Decimal('0.0')))
'1.4'