标签: generator

使用 python 生成器函数

我正在练习在 python 中使用生成器函数,所以我定义了一个函数,如下所示:

def MySQL_product():
   #Establish connection to database
   try:
       connection = msql.connect(host = 'localhost', user = 'max', passwd = 'password', db = 'schools')
   except:
       pass

   #Iterate through each product and insert them in database
   with connection:
       cursor = connection.cursor()
       cursor.execute("SELECT name, age, gender, school
                    WHERE GroupId = 'student' AND Exchange = 'foreign'")
       for product in cursor.fetchall():
           yield product

def main():
    for column in range (0, number_of_schools):
        for product in MySQL_product():
            print product
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,我看到的所有输出都是generator object at ...我试图打印在数据库中找到的内容。此外,print …

python generator

-1
推荐指数
1
解决办法
3139
查看次数

从列表中选择一种随机颜色

如何制作随机颜色生成器,但只使用我为程序选择的 5 种颜色。我正在做一个优先系统,它使用颜色来归因于医院的每个病人。

提前致谢。

c# random colors generator

-1
推荐指数
1
解决办法
1886
查看次数

random_int生成的值小于最小值

我正在生成密码random_int,但我注意到一些奇怪的东西.有时(纯粹随机),它会生成小于最小值的密码.例如,我设置1015限制,每一次大约50-70尝试它弹出一个2-3字符长密码.我的脚本有问题吗?重现输出很难,只需刷新脚本直到得到类似的结果.

<?php 

    $r_number = random_int( 10 , 15 );

    function random_str(
        $length,
        $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,./<>?;:"|[]{}-=_+`~!@#$%^&*'
    ) {
        $str = '';
        $max = mb_strlen($keyspace, '8bit') - 1;
        if ($max < 1) {
            throw new Exception('$keyspace must be at least two characters long');
        }
        for ($i = 0; $i < $length; ++$i) {
            $str .= $keyspace[random_int(0, $max)];
        }
        return $str;
    }

    $password = random_str($r_number);

    echo $password;

?>
Run Code Online (Sandbox Code Playgroud)

php random passwords generator

-1
推荐指数
1
解决办法
59
查看次数

如何在bash中生成1000万个随机字符串

我需要为排序算法制作一个大的测试文件.为此,我需要生成1000万个随机字符串.我怎么做?我尝试在/ dev/urandom上使用cat,但它会持续几分钟,当我查看文件时,只有大约8页的字符串.如何在bash中生成1000万个字符串?字符串长度应为10个字符.

string random bash generator

-1
推荐指数
1
解决办法
690
查看次数

为什么Python生成器只能使用一次?

发电机一旦使用过一次,就无法再次使用。为什么是这样?

考虑以下代码:

def generator(n):
  a = 1

  for _ in range(n):
    yield a
    a += 1

def run_generator(generator):
  for a in generator:
    print(a, end = " ")
Run Code Online (Sandbox Code Playgroud)

如果我要执行这个:

count_generator = generator(10)
run_generator(count_generator)
run_generator(count_generator)
Run Code Online (Sandbox Code Playgroud)

它只会打印:

1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)

基本上,生成器在执行一次后就会死亡。

我知道生成器只能使用一次这一事实是 Python 内置的东西,但为什么会这样呢?是否有特定原因只允许生成器对象执行一次?

python generator

-1
推荐指数
1
解决办法
1982
查看次数

StackOverflow 与 C# 中的随机名称生成器

using System;


namespace npcnames

{
    class Program
{



    static string RandomVowel()
    {
        Random rand = new Random(); 
        string[] Vowels = new string[5] { "a", "e", "i", "o", "u" };
        int index = rand.Next(Vowels.Length); 
        string Vowel = Vowels[index]; 

        return Vowel;
    }

    static string RandomConsonant()
    {
        Random rand = new Random(); 
        string[] Consonants = new string[21] { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z" };
        int index = …
Run Code Online (Sandbox Code Playgroud)

c# stack-overflow random generator

-1
推荐指数
1
解决办法
1426
查看次数

为什么当迭代它的循环被中断时,生成器会引发异常?

def gen():
    try:
        yield 1
        yield 2
    except:
        print('hi')
def func():
    for x in gen():
        return x
print(func())
Run Code Online (Sandbox Code Playgroud)

此代码打印hi然后打印1。为什么它不直接打印1?提出了什么例外?

python exception generator

-1
推荐指数
1
解决办法
157
查看次数

我有一个简单的python dict为什么打印生成器引用而不是dict

创建一个简单的字典:

 procinfos = {"f1": f1, "f2": f2, "f3shell" : (wrap_for_process, q, f3shell, "input arg1", "input arg2")}
Run Code Online (Sandbox Code Playgroud)

然后我想打印其内容:

 print (procinfo for procinfo in procinfos)

<generator object <genexpr> at 0x7f46dccc0dc0>
Run Code Online (Sandbox Code Playgroud)

为什么python只告诉我这是一个生成器?我怎样才能简单地打印内容.从我读到的关于生成器的内容来看,它们不打算使用dict/list.但这已经是一个完全具体化的系列 - 对我来说没有任何意义(至少对我来说......)而不是简单地打印它.这是常见的用例,会欣赏一种获取这些集合的基本打印的简洁方法.谢谢.

更新:我想要一行/内联,而不是多行.谢谢.

python generator

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

在生成器Python 3.5中删除与相同元素无关的重复元组

我有一个元组生成器,我需要删除包含相同元素的元组。我需要此输出进行迭代。

Input = ((1, 1), (1, 2), (1, 3), (3, 1), (3, 2), (3, 3))

Output= ((1, 1), (1, 2), (1, 3))
Run Code Online (Sandbox Code Playgroud)

输出顺序无关紧要。

我已经检查了这个问题,但是它与列表有关:删除嵌套列表Python中具有相同元素的重复元组

我使用生成器来获得最快的结果,因为数据非常大。

python tuples generator python-3.5

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

C#Namegenarator带来5个相同的字母

我写了一个小名字发生器.我总是用计数5测试它(给我一个带5个字母的名字^^)现在问题是程序给我带来了相同的5个字母.像GGGGG或HHHHH.神奇的是,如果我一步一步地使用调试器,它就必须如此工作.

今天我在手机上,但我试着明天把代码带到这里.也许有人可以在没有代码的情况下帮助我.

问候蜜蜂

c# string generator

-3
推荐指数
1
解决办法
70
查看次数