私信  •  关注

Serge Ballesta

Serge Ballesta 最近创建的主题
Serge Ballesta 最近回复了
6 年前
回复了 Serge Ballesta 创建的主题 » python regex替换所有以“:”开头的单词,下一个字符是字母

您可以尝试以下模式: '\W:(\w+)' 为了选择 某物 仅当冒号不在 单词 性格。它适用于那个例子,但我不确定它是否足以满足一般需求。

6 年前
回复了 Serge Ballesta 创建的主题 » Python生成器表达式:如何从循环中添加和条件?

正如@1Z10在评论中所建议的, np.reduce 最终会成为你的朋友。

您应该首先构建一个布尔矩阵,其中每个最高级别的行是子数组与其相应阈值的比较。那就用 np.还原 nb.logical_and 在这个矩阵上得到你的结果,不管需要多少比较:

dynamic_expr = np.logical_and.reduce(np.array(
    [dist[:, :, indexes[col]] <= thresholds[col]
     for col in columns]))
print(dynamic_expr)

输出为:

[[ True False  True  True False False False]
 [False  True False False False False False]
 [ True False  True False False False False]
 [ True False False  True False False False]
 [False False False False  True False False]
 [False False False False False  True False]
 [False False False False False False  True]]

你的 get_region 功能有缺陷。应该是:

def get_region():
    return [state_region[i] for i in fulldf['state']]

python的理解经过了足够的优化,使得该函数对于一个30k长的数据帧来说是合适的。

6 年前
回复了 Serge Ballesta 创建的主题 » python 3模块从另一个文件夹导入错误[重复]

这是从主源文件夹外部进行测试的特殊用例。 main 没有理由成为一个包裹,有没有理由不把它做成一个。

imho,最好的方法是从主目录启动测试。因为当前目录总是在 sys.path , sub1 将直接导入,这就足够了:

from sub1 import SomeClass

但是,根据您的开发环境,您可能需要直接从测试目录或除main以外的任何目录启动测试。在这种情况下,我不确定它是否真的是一个最佳实践,我只将其用于我的测试,但一个简单的技巧是将测试文件夹的父文件夹添加到 搜索路径 .

这可能是 test.py :

import os.path
import sys

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))

from sub1 import SomeClass
...

照它的样子来:A 搜索路径 只允许从测试文件夹访问主源文件夹的技巧。

6 年前
回复了 Serge Ballesta 创建的主题 » 如何在python中加密特定语言?

假设您使用python3版本,那么您的字符串是unicode字符串。在填充之前,您应该将其编码为utf8编码的字节字符串,因为长度会改变。它适用于ascii字符串,因为编码字节字符串的长度是unicode字符串的长度。

因此,在代码中,您必须简单地执行以下操作:

 key = some key
 raw ='한글 (한국말)이라고도하는 한국어는 남한과 한국의 공식 언어입니다'
 byte_raw = raw.encode('utf8')
 AESCipher_obj=AESCipher(key)
 val = AESCipher_obj.encrypt(byte_raw)

 print(val)

解密后,您将得到一个字节字符串,应该用 .decode('utf8') 将其转换为python3(unicode)字符串。

6 年前
回复了 Serge Ballesta 创建的主题 » 在python中添加两个二进制数

假设你想做一个二进制和 用手 你必须:

  • 从结尾开始处理两个数字( reversed 会有帮助的)
  • 持续增加位处理进位,直到两个数字的长度用完为止
  • 重新排序结果位(此处再次 颠倒的 )

代码可以是(假设您可以确定 chaina chainb 只存在于 0 1 字符,此处不测试):

def binsum(chaina, chainb):
    def next0(it):
        """Retrieve next digit from a binary representation, 0 when exhausted"""
        try:
            return int(next(it))
        except StopIteration:
            return 0
    a = reversed(chaina)  # reverse chains to start with lowest order bit
    b = reversed(chainb)
    r = 0
    result = []           # future result
    for i in range(n):
        t = next0(a) + next0(b) + r  # add with carry
        if t > 1:
            t -= 2
            r = 1
        else:
            r = 0
        result.append('1' if t else '0')
    if r != 0:                        # do not forget last carry
        result.append('1')
    return ''.join(result)
6 年前
回复了 Serge Ballesta 创建的主题 » Python2.7文件编码失败

您混淆了源代码编码(声明为 # -*- coding: utf-8 -* )默认的运行时编码with用于unicode和字节字符串之间的隐式转换。它们在Python2和Python3中完全不相关。

从这个意义上说 #-*-编码:UTF-8-* 在python 2和python 3中的行为完全相同:它在当前源文件中声明unicode litterals的编码。

但系统默认编码不同。在python 2中它通常是ascii,并且可以依赖于python 3上的环境,默认值为utf-8。所以你在代码中得到相同的值只是偶然的…

6 年前
回复了 Serge Ballesta 创建的主题 » 无法为pip创建python包

你应该在test.pypi.org中交互查看…

你会立刻注意到你自己的项目 first 但作为 tvg11 . 重要的是里面的名字和版本号 setup.py 文件而不是文件夹名。

但真正的原因是您将包的文件放在 安装程序.py 文件和使用 packages=setuptools.find_packages() . 所以你下面没有包裹 安装程序.py , find_packages 找不到任何东西,而且您已经构建了一个有趣的包,其中只包含 安装程序.py README.md .

如何修复:

首先,您应该为包构建一个更常见的结构:

  - first
    - setup.py
    - LICENSE
    - README.md

    - first
        - __init__.py
        - myfirst.py

往那边走 find_package 将找到 第一 子文件夹作为 TVG11 包裹。