鱼C论坛

 找回密码
 立即注册
查看: 1713|回复: 17

[作品展示] 密码生成器v2.9

[复制链接]
发表于 2022-3-7 14:56:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shiyouroc 于 2022-3-7 14:59 编辑

密码生成器v2.9
问题:
1.代码不简洁。
2.功能不多。
# coding=utf-8
#!/usr/bin/python
# Write Python 3 code in this online editor and run it.
from random import randint
from sys import exit
yes=1
ye=1

xiao=['a','b','c','d','e','f',
     'g','h','i','j','k','l',         
     'm','n','o','q','p','r',
     't','s','u','v','w','x','y',
      'z']


da=['A','B','C','D','E','F',

   'G','H','I','J','K','L',

   'M','N','O','P','Q','R',

   'T','U','S','V','W','X','Y',

   'Z']



def three_engling():
    
    global yes
    global ye
    yes = input("是1退0")
    ye = yes.isdigit()
    print(ye)

    

def tt():
    global yes
    global ye
    
    while ye == False:
        print('请勿非法输入。')
        yes = input("是1退0")
        ye = yes.isdigit()
        print('请勿非法输入。')
        if ye == False:
            cc()
        else:
            break


def dd():
    global yes
    yes = int(yes)
    if yes > 1:
        print('请勿非法输入。')
        cc()
    
    if yes ==0:
        exit(0)


def sc():
    y=randint(0,2)

   

    if y==0:

        d=randint(0,25)

        one=xiao[d]

    else:

        d = randint(0,25)

        one = da[d]

               

    if y==1:

        q= randint(0,25)

        two = xiao[q]

    else:

        q = randint(0,25)

        two = da[q]

               

               

    if y==2:

        z=randint(0,25)

        three=xiao[z]

    else:

        z=randint(0,25)

        three=da[z]

   

    numbers = randint(1000000,99999999)

   

    g=str(one)+str(two)+str(three)+'.'+str(numbers)
    print(g)
    cc()
    


 
    

def cc():
    three_engling()
    tt()
    dd()
    sc()
    
cc()
        
@python爱好者.
@nizitao
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-7 14:59:23 | 显示全部楼层
@ckblt @冬雪雪冬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 14:59:31 | 显示全部楼层
xiao=['a','b','c','d','e','f',
     'g','h','i','j','k','l',         
     'm','n','o','q','p','r',
     't','s','u','v','w','x','y',
      'z']


da=['A','B','C','D','E','F',

   'G','H','I','J','K','L',

   'M','N','O','P','Q','R',

   'T','U','S','V','W','X','Y',

   'Z']

这两句代码有些c化   用推导式做比较PYTHON
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-7 15:00:05 | 显示全部楼层
如果,有bug和建议,请大家评论回复。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:00:12 | 显示全部楼层
第 34 行什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:01:19 | 显示全部楼层

去掉第 34 行!
干嘛要打印是否是数字?!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-7 15:02:25 | 显示全部楼层

是废话。isdigit()能判断字符串里有没有数字,有返回ture 无flase
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:02:42 | 显示全部楼层
shiyouroc 发表于 2022-3-7 15:02
是废话。isdigit()能判断字符串里有没有数字,有返回ture 无flase

调试用的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-7 15:03:17 | 显示全部楼层

差不多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-7 15:04:19 | 显示全部楼层
wp231957 发表于 2022-3-7 14:59
xiao=['a','b','c','d','e','f',
     'g','h','i','j','k','l',         
     'm','n','o','q','p','r' ...

啥意思我基本功不太扎实。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:09:50 | 显示全部楼层

加注释,可读性较差
还有请把函数名起的有意义些,更方便阅读,调试!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:12:00 | 显示全部楼层
shiyouroc 发表于 2022-3-7 15:04
啥意思我基本功不太扎实。

这个意思:
xiao=['a','b','c','d','e','f',
     'g','h','i','j','k','l',         
     'm','n','o','q','p','r',
     't','s','u','v','w','x','y',
      'z']

da = [each.upper() for each in xiao]
da
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'Q', 'P', 'R', 'T', 'S', 'U', 'V', 'W', 'X', 'Y', 'Z']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:12:43 | 显示全部楼层
shiyouroc 发表于 2022-3-7 15:04
啥意思我基本功不太扎实。

列表推导式!
还有,尽量避免使用 global 关键语句,
空格空多了点!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:14:33 | 显示全部楼层
shiyouroc 发表于 2022-3-7 15:04
啥意思我基本功不太扎实。

在C中也不需要这样写
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int GetRand(int min, int max)
{
        return rand() % (max - min + 1) + min;
}

void GetUsernamePassword(char *username_buff, char *password_buff)
{
        int username_len = GetRand(3, 15);
        int password_len = GetRand(6, 13);
        char *dict = "._1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
        int dict_len = strlen(dict);
        int i;

        for(i = 0; i < username_len; ++i)
                username_buff[i] = dict[rand() % dict_len];
        username_buff[i] = '\0';

        for(i = 0; i < password_len; ++i)
                password_buff[i] = dict[rand() % dict_len];
        password_buff[i] = '\0';
}

int main(void)
{
        srand((unsigned int)time(0));
        char username_buff[100];
        char password_buff[100];
        
        for(int i = 0; i < 10; ++i)
        {
                GetUsernamePassword(username_buff, password_buff);
                printf("用户名: %s\n", username_buff);
                printf("密码:   %s\n", password_buff);
                printf("\n");
        }

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:16:53 | 显示全部楼层
dd() 和 tt() 是不是应该整合在一起?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:56:30 | 显示全部楼层
好优秀啊 前来学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 16:12:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-10 21:52:09 | 显示全部楼层
本帖最后由 nizitao 于 2022-3-14 14:53 编辑

代码问题1.老毛病——空行太多
             2.建议将函数、变量的名字改为容易懂的,不然实在看的有些吃力
             3.加注释,加注释,加注释(重要的事情说三遍!!!)
                                                                                                                                                                                                                                                                                      @shiyouroc
                                                                                                                                                                                                                                                                                       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 04:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表