小编Ali*_*aei的帖子

在 python telethon 中加入频道的最简单方法

我阅读了 telethon 文档来检索用户名加入频道。经过一番尝试我写了这段代码:

result = client.invoke(ResolveUsernameRequest('XXXX'))
channel = InputChannel(result.peer.channel_id, result.chats[0].access_hash)
client.invoke(JoinChannelRequest(channel))
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,但我想知道是否有更好或更简单的方法?

python telegram telethon

5
推荐指数
1
解决办法
7249
查看次数

python以反向模式打印3个列表的第一个元素

假设我有一个这样的列表:

my_list = [0,1,2,3,4,5] # range(5)
Run Code Online (Sandbox Code Playgroud)

我想打印这个:

[2,1,0]
Run Code Online (Sandbox Code Playgroud)

我的python脚本是:

print(my_list[2:-1:-1])
Run Code Online (Sandbox Code Playgroud)

但它会打印一个空列表!

这是python中的一个错误(2和3!)?

我不会使用任何技巧,如:

num_of_elems_i_want = 3
print(my_list[::-1][len(my_list) - num_of_elems_i_want:])
Run Code Online (Sandbox Code Playgroud)

或第三方模块..

python list

2
推荐指数
1
解决办法
185
查看次数

将python f-string与格式相结合

我想使用传递给format方法的变量计算f-string中的数学运算.例如,我需要这样的东西:

print(f"{{a}} * 3".format(a=2))
Run Code Online (Sandbox Code Playgroud)

此代码打印:

2 * 3
Run Code Online (Sandbox Code Playgroud)

但我想要的结果是6.另外我不会使用python eval函数来评估这个字符串.

python f-string

1
推荐指数
2
解决办法
985
查看次数

python:'int'对象没有属性'__iadd__'

x用值声明了一个整数变量0.

>>> x = 0
Run Code Online (Sandbox Code Playgroud)

当我运行这一行:

>>> x += 3
>>> x
3
Run Code Online (Sandbox Code Playgroud)

一切顺利.但是当我运行这一行时:

>>> x.__iadd__(3)
Run Code Online (Sandbox Code Playgroud)

Python提出了一个例外:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute '__iadd__'
Run Code Online (Sandbox Code Playgroud)

为什么python会抛出这个异常,而在官方的python文档中,operator模块表示+=运算符调用__iadd__方法?

python

0
推荐指数
1
解决办法
225
查看次数

标签 统计

python ×4

f-string ×1

list ×1

telegram ×1

telethon ×1