首页 > 编程语言 >python一些技巧

python一些技巧

时间:2024-03-02 20:57:30浏览次数:23  
标签:__ 技巧 python 注释 int str 一些 函数

1. 一个for循环的一个非常好用的例子

示例如下:

for _ in range(10):
    print("Hello world!")

2. Python中变量名后面加冒号, 函数后面加箭头

def f(text:str,max_len:'int>0'=80) ->str:
    return True

函数声明中,text:str
text 是参数 : 冒号后面 str是参数的注释。
如果参数有默认值,还要给注释max_len:'int>0'=80

->str 是函数返回值的注释。

这些注释信息都是函数的元信息,保存在f.__annotations__字典中
需要注意,python对注释信息和f.__annotations__的一致性,不做检查
不做检查,不做强制,不做验证!什么都不做。

一个例子:

def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here":
    print("函数注释", f.__annotations__)
    print("参数值打印", ham, eggs)
    print(type(ham),type(eggs))

f("www")

# >>> 函数注释 {'ham': 42, 'eggs': <class 'int'>, 'return': 'Nothing to see here'}
# >>> 参数值打印 www spam
# >>> <class 'str'> <class 'str'>

解释说明:

注释的一般规则是参数名后跟一个冒号(:),然后再跟一个expression,这个expression可以是任何形式。

返回值的形式是 -> int,annotation可被保存为函数的attributes。

    注释的一般规则是参数名后跟一个冒号(:),然后再跟一个expression,这个expression可以是任何形式。   
    返回值的形式是 -> int,annotation可被保存为函数的attributes。

以上属于静态注释,还有一种方法叫做动态注释
动态注释的原理,就是在函数中或者装饰器中动态的增加 删除 更改 注释内容
f.__annotations__是一个字典,可以使用字典的所有操作,这样就可以动态的更改注释了

3. 多行注释竟然后帮助文档的作用

python中使用三个引号作为多行注释,这个竟然会在help()是显示以起到多行注释的作用

4. python中 # %% 的作用

很神奇的一件事情就是在 .py 文件中使用
# %% 可以产生像是jupter中框的作用一样,而其后可以直接调用Jupter也可以直接进行debug
感觉非常方便

5. 序列解包

使用序列解包可以用非常简洁的方法完成复杂的功能。增强代码的可读性,减少代码量。


>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3

>>> a, b, *c = 0, 1, 2, 3
>>> a
0
>>> b
1
>>> c
[2, 3]


>>> a, b, *c = 0, 1
>>> a
0
>>> b
1
>>> c
[]

# 嵌套解包

>>> (a, b), (c, d) = (1, 2), (3, 4)

>>> a, b, c, d
(1, 2, 3, 4)

更有用的是在输入的时候,联合eval的将字符串当成有效的表达式来求值并返回计算结果
input()返回的是字符串,利用eval()函数可以完成多个输入赋值

x,y = eval(input("请输入两个数字,以逗号分隔:"))

# 输出为
请输入两个数字,以逗号分隔:1,2
>>> x
1
>>> y
2

标签:__,技巧,python,注释,int,str,一些,函数
From: https://www.cnblogs.com/guanghui-hua/p/18049214

相关文章

  • python中的各种下划线
    ----------------------------核心风格:避免用下划线作为变量名的开始。---------------单下划线开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;但这只是一个约定,就像是道德约束,并没有法律效力双下划线开始的是私有成员,意思是只有类对象自己能访......
  • python取反操作符的解释
    今天看做词云的代码看到这样一句words_df=words_df[~words_df.segment.isin(stopwords.stopword)]刚开始看不懂这个"~",就去百度了一下,记录下来(1)在计算机里面,负数是以补码存储的(2)原码求补码:取反,+1(3)补码求原码:取反,+1(4)取反操作是在原码上进行的!实际的计算......
  • Python 中的 if __name__ == '__main__' 该如何理解
    结论if__name__=='__main__'我们简单的理解就是:如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。程序入口对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概......
  • Python环境安装与配置
    1.浏览器输入python官方网站打开2.选择downloads后,再选择电脑的操作系统,如:Windows3.根据自己的电脑选择合适的版本,如:3.12版4.选择下载好的版本,鼠标右键选择以管理员身份运行5.勾选AddPythontoPATH,点击Customizeinstallation(自定义安装)6.点击next7.选中installPython3.......
  • python入门
    1.标识符:变量名,类名。模块名等,对大小写敏感,长度无限制,但是中间不能有空格,保留字不能用2.变量、常量(变量的值就是常量)3.数据类型,数值型(四种进制数)二进制(0b,0B)八进制(0o,0O)十六进制(0x,0X)复数型num=5+4jprint(num)输出虚部和实部print(num.imag)print(num.real)布尔型通......
  • [python]将多张图片合并为单个pdf文件
    前言最近有个个人需求是要把多个图片文件合并为一个PDF文件,这样方便用PDF阅读器连续看,避免界面点一下,只会图片放大。(比如看漫画)主要思路是先把单张图片转换成单个PDF文件,然后把PDF文件进行合并。原先是用WPS的转换工具做的,但WPS每次只能批量转换30张,如果有大量图片文件,用WPS就不......
  • Python学习笔记03
    函数语法:def函数名(传入参数):函数体return返回值#遍历字符串,并统计字符串的长度str1="helloword"str2="shen_mo_xie_xing"count=0foriinstr1:count+=1print(i,end='')print()print(f"字符串{str1}的长度是{count}")count=0fo......
  • 2024-03-02:用go语言,一个句子是由一些单词与它们之间的单个空格组成, 且句子的开头和结
    2024-03-02:用go语言,一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格,比方说,"HelloWorld","HELLO","helloworldhelloworld"都是句子,每个单词都只包含大写和小写英文字母,如果两个句子sentence1和sentence2,可以通过往其中一个句子插入一......
  • Centos 上python3 pip3安装报错:WARNING: pip is configured with locations that requ
    pip3安装报错:WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.在网上查一下原因是openssl版本不兼容导致,centos默认带的openssl版本太低,要升级openssl版本。openssl  下载地址:https://www.openssl.org/s......
  • Python日志logging模块
    Python日志logging模块logging---Python的日志记录工具—Python3.12.2文档Pythonlogging模块的基本使用、进阶使用详解_python中logging模块详解-CSDN博客logging模块架构日志级别默认的级别是“WARNING“,意味着只会追踪该级别及以上的事件。级别何时使用......