1、格式化是如输出

def p(n):print("f(%d)=%d%s素数" % n % f(n) % ("是" if isprime(n) else "不是"))

即TypeError:格式字符串的参数不足,本来以为少了%,后来对着度娘观摩半天后,终于意识到一堆参数只需要一个%,剩下的使用括号即可,正确代码为(其实只有最后一行错了):

def p(n):print("f(%d)=%d%s素数" %( n, f(n), ("是" if isprime(n) else "不是")))

2、map高级用法,直接看图

3、range生成的是list,无法进行中间改变

for i in range(1,5):print(i)i -= 1


4、字符串的start with属性

if not ID.startswith('20'):   #如果学号未以20开头  print('未以20开头')

5、负一整除
在若干次循环后,d的值一直为-1,这次循环是-1,下次循环整除2后还是-1,也就是说,-1//2的结果是-1而不是0,可以验证一下这个说法,程序如下:

print(-1//2) #-1//2的结果是-1(请自行上网查询负数整除如何进行)
  所以,输入负数时会出现死循环。

6、递归定义的特殊符号

7、进制转化
print(bin(37)) #bin(n)是将十进制整数n转换为二进制
print(oct(37)) #oct(n)是将十进制整数n转换为八进制
print(hex(37)) #bin(n)是将十进制整数n转换为十六进制
print(int(‘100101’, 2)) #int(n, 2)是将二进制数n转化为十进制
print(int(‘45’, 8)) #int(n, 8)是将八进制数n转化为十进制
print(int(‘25’, 16)) #int(n, 16)是将十六进制数n转化为十进制


可见进制转换后变成了str
8、字符串是不可以随意修改的

下面这种改法,x不会改变text中的enchar

9、三通道图像处理
from PIL import Image
img = Image.open(‘src/step2/head.jpg’)
pix = img.getpixel((23, 5)) #获取(23, 5)处像素的颜色
print(pix)
  其中,第 3 行中getpixel函数的功能是获取一个像素的颜色信息,其参数是用元组类型表示的像素坐标。
  程序运行结果是一个包含 3 个整数的元组(0, 156, 68),这就是计算机表示颜色的一种方法,称为 RGB 颜色。

10、透明度

RGBA颜色

在 RGB 颜色的基础上,再加入一个 A 分量,就构成了 RGBA 颜色。A 分量表示的是像素透明度,取值也是 0~255,0 表示完全透明,255 表示完全不透明。
  在现实生活中,要看一个物体的透明度,可以通过它看后面的景象,透明度越高,后面的景象就看得越清晰,颜色的透明度也是类似的。例如,在下图中,第 1 个矩形中颜色的透明度是 255,表示完全不透明,将它放到背景图像上,则只能看到这个颜色,而看不到背景;第 2 个颜色的透明度是 100,表示半透明,所以既能看到这个颜色,也能透过这个颜色隐约看到背景图像;第 3 个颜色的透明度是 0,表示完全透明,看到的就都是背景图像。
  
11、绿屏抠像原理

偏绿色的判断

初始代码给出了绿幕抠像的程序框架,与上关代码基本一样,区别在于:上关是将所有像素都改为半透明,而本关只对偏绿色像素进行修改(改为完全透明)。所以,只要在第 9 行问号处给出偏绿色像素的判断条件,即可过关。
  RGB 颜色包含红绿蓝三个分量,每个分量的取值范围是 0~255,一个分量的数值越大,表示这个分量占的比例越高。所以,绿色分量数值越大,颜色就越偏绿色,比如在下图中,保持红色和蓝色分量数值不变,增大绿色分量的数值,颜色就越来越偏绿色。

绿色分量占的比例可以用绿色分量除以三个分量之和来表示,即 (G+1)/(R+G+B+3),这里给每个分量均增加 1,是为了避免 R、G、B 分量均为 0 时发生除 0 错误。根据视觉效果可以看出,当绿色分量的比例超过 40% 时,颜色看起来就是偏绿色了。所以,得偏绿色判断条件如下:

例如在下图中,几种颜色的红色和蓝色分量都是 0,所以绿色分量占的比例都是 100%。但当绿色分量取值较小的时候,颜色看起来是黑色,当超过一定数值时看起来才是绿色。

所以,在“比例超过 40%”这个条件的基础上,还要再加一个条件,绿色分量的取值要大于某一个值,根据视觉效果,这个值可以设置为 60,即在程序第 9 行中增加条件 G>60。

补充说明

上面给出的两个值是经验值,而不是理论值,比例比 40% 高一些或低一些、取值比 60 大一些或小一些,其实都可以进行判断,某些时候甚至效果更好。
  此外,判断偏绿色的方法也不唯一,例如,条件g-r>30 and g-b>30(即绿色分量比红、蓝色分量的取值都大 30 以上)也可以取得较好的抠图效果。
12、乘二取整法

12、找下标
n = b.index(‘.’) #小数点的编号,即整数部分的总位数

13、超重点:list的join操作


14、保留一位小数的最简单方法
b 保留一位小数(用round函数实现,如round(3.14, 1))

15、map典型案例解析ip地址
########## Begin ##########
def DectoBin(t):
t = int(t)
def DtB(t):
if t == 0:
return ‘’
return DtB(t//2)+str(t%2)
if t == 0:
return ‘00000000’
if t < 0:
return ‘-’+DtB(-t)
return DtB(t)
def BintoDec(b):
s = 0
for i in range(len(b)):
s += 2**iint(b[len(b)-i-1])
return str(s)
def NOT(x):
b = ‘’
for i in x:
a = ‘1’ if i ==‘0’ else ‘0’
b += a
return b
def AND(x,y):
ans = ‘’
if len(x)<len(y):
x = ‘0’
(len(y)-len(x))+x
else:
y = ‘0’*(len(x)-len(y))+y
for i in range(len(x)):
ans += ‘1’ if x[i] == ‘1’ and y[i] == ‘1’ else ‘0’
return ans
def parseIP(ip,mask):
ipls = list(map(DectoBin,ip.split(‘.’)))
mkls = list(map(DectoBin,mask.split(‘.’)))
# print(mkls)
netID = []
hostID = []
mk0ls = list(map(NOT,mkls))
# print(mk0ls)
netID = list(map(BintoDec,list(map(AND,ipls,mkls))))
hostID = list(map(BintoDec,list(map(AND,ipls,mk0ls))))
return ‘.’.join(netID),‘.’.join(hostID)
########## End ##########
ip = input() #IP地址
mask = input() #子网掩码
netID, hostID = parseIP(ip, mask)
print(‘网络号:’, netID) #网络号
print(‘主机号:’, hostID) #主机号

17、二进制加一的特殊算法,值得记忆

18、定点数 与 浮点数
第 1 关提到,二进制中除了 0 和 1,还有 +、− 和 .,而计算机底层只有 0 和 1。之前关卡解决的是如何用 0 和 1 表示正负号的问题,从本关开始要进一步解决小数点的问题。
  问题的难点在于不能直接用 0 和 1 表示小数点这个符号。例如,若用 1 表示小数点,则二进制数 101.01 对应的表示为 101101,计算机无法区分哪个 1 是小数点,用 0 或其它 01 串表示都存在类似问题。
  解决方法是固定小数点的位置。例如,可以做如下规定,在 8 位原码中,小数点位置总是在第 4 位和第 5 位之间,固定不变,则 01010100 表示的数是 +101.0100,即 101.01,从而不用再直接表示小数点了,因为它的位置是已知的。这种表示方式叫定点数。
  
二进制转十进制 int(byte,2)

19、超重点 zip构造字典

list1 = [‘key1’,‘key2’,‘key3’]
list2 = [‘1’,‘2’,‘3’]
print(dict(zip(list1,list2)))

20、  判断一个字符是否为数字字符,方法有很多,下面给出其中 3 种。

x = '2'
if x in '0123456789':     #方法1  print(x,'是数字字符')
else:  print(x,'不是数字字符')
if '0'<=x<='9':           #方法2  print(x,'是数字字符')
else:  print(x,'不是数字字符')
if x.isdigit():           #方法3  print(x,'是数字字符')
else:  print(x,'不是数字字符')

python编程小知识tips 20220720相关推荐

  1. python编程小知识_分享Python开发中要注意的十个小贴士

    大家请注意:这篇文中假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, ...

  2. Python编程小知识-1-省略号运用

    默默无闻的省略号很好用 在Python中,一切皆对象,省略号也不例外. 在Python 3中你可以直接写来得到它 >>>...Ellipsis >>>type(.. ...

  3. python编程思维导图_用来梳理 Python 编程核心知识15张思维导图

    原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...

  4. c语言代码游戏跳一跳,微信小程序《跳一跳》游戏里的编程小知识,你知道吗?...

    微信小程序<跳一跳>游戏里的编程小知识,你知道吗? 今日你跳了吗? 玩过的朋友都知道,跳一跳里的游戏操作非常简单,就用手指按住屏幕按住施放进行跳跃,整个游戏是个人都可以很轻松玩起来! 游戏 ...

  5. Python编程基础知识(入门了解)

    python编程语言在近几年越来越火,下面分享一下python编程语言的简单基础知识. (相关知识点实验内容源自实验平台) 知识点一:类的声明 在python中,类的声明是通过class关键字: cl ...

  6. python编程基础知识点_12个关于Python编程基础知识的总结

    学习任何语言的时候,打好基础非常重要.就像学英文,要知道26个字母,还要学会单词.句型.语法等等.那么Python编程也一样,对于刚入门学习的人更应该打好基础.下面课课家收集了常用的12种Python ...

  7. 值得玩味儿的14个Python编程小技巧

    全文共394个字,1张图,预计阅读时间5分钟. 最近的工作中经常使用Python编写一些基本解决一些NLP的小问题,在自己的工作日记里面也记录了不少的python编程中常用的小"Trick& ...

  8. python编程基础知识体系_【汇总】Python 编程核心知识体系

    [汇总]Python 编程核心知识体系 大神著作,源自:https://woaielf.github.io/2017/06/13/python3-all/ 本文主要涵盖了 Python 编程的核心知识 ...

  9. python金融分析小知识(30)——比较常见的pd.set_option的使用

    Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 哈喽大家好,今天我要给大家讲讲在pandas的 ...

最新文章

  1. linue 查询端口号 netstat
  2. html每个段落空前空两格,科普:为什么段落开始要空两格(两个汉字)?
  3. 震惊!原来这才是Kafka的“真面目”!
  4. 八十二、归并排序求取复杂的逆序数
  5. 2_5 BridgeMode.cpp 桥接模式
  6. 第三次学JAVA再学不好就吃翔(part114)--Properties类
  7. 【HAVENT原创】Node Express API 通用配置
  8. 时间格式化需要注意点不可使用本地时间
  9. code回归采访哭 ladies_南太铉直播下跪?星船新男团?Mina归队?Kingdom来了?itzy回归?...
  10. IAR编译器中函数智能提示
  11. Oracle密码过期解决办法
  12. QQ抢车位游戏PhysicalDataModel
  13. android OTA更新
  14. 美国男人欢迎中国的丑女人?------------说说洁
  15. Arduino Mega/Uno制作宏定义键盘(不需刷firmware!!)
  16. 身份认证技术的产业发展
  17. 如何做到数据分析报告(五)
  18. C语言学习开篇 对C语言和编程的认识
  19. 基准测试神器 - JMH [ Java Microbenchmark Harness ]
  20. PLM系统的技术现状和发展趋势

热门文章

  1. iOS 动态改变字体
  2. nginx配置url重定向_Nginx配置URL重写
  3. javascript字符串拼接引号转义
  4. 国泰新点部分面试题整理
  5. Unity3D-将美术提供的图片当做字体使用(普通图片自动生成Custom font)
  6. echarts横向左右对比柱状图
  7. C语言基础-编程规范!代码不规范,自己两行泪!
  8. Matplotlib 和numpy 基础学习笔记
  9. Redis分片代理twemproxy快速搭建 | twemproxy Demo | twitter/ twemproxy 避坑指南 | autoconf-2.69下载
  10. QC项目数据恢复和升级