鱼C论坛

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

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

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

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

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

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

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

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


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

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

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

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

  17.    'Z']



  18. def three_engling():
  19.    
  20.     global yes
  21.     global ye
  22.     yes = input("是1退0")
  23.     ye = yes.isdigit()
  24.     print(ye)

  25.    

  26. def tt():
  27.     global yes
  28.     global ye
  29.    
  30.     while ye == False:
  31.         print('请勿非法输入。')
  32.         yes = input("是1退0")
  33.         ye = yes.isdigit()
  34.         print('请勿非法输入。')
  35.         if ye == False:
  36.             cc()
  37.         else:
  38.             break


  39. def dd():
  40.     global yes
  41.     yes = int(yes)
  42.     if yes > 1:
  43.         print('请勿非法输入。')
  44.         cc()
  45.    
  46.     if yes ==0:
  47.         exit(0)


  48. def sc():
  49.     y=randint(0,2)

  50.    

  51.     if y==0:

  52.         d=randint(0,25)

  53.         one=xiao[d]

  54.     else:

  55.         d = randint(0,25)

  56.         one = da[d]

  57.                

  58.     if y==1:

  59.         q= randint(0,25)

  60.         two = xiao[q]

  61.     else:

  62.         q = randint(0,25)

  63.         two = da[q]

  64.                

  65.                

  66.     if y==2:

  67.         z=randint(0,25)

  68.         three=xiao[z]

  69.     else:

  70.         z=randint(0,25)

  71.         three=da[z]

  72.    

  73.     numbers = randint(1000000,99999999)

  74.    

  75.     g=str(one)+str(two)+str(three)+'.'+str(numbers)
  76.     print(g)
  77.     cc()
  78.    



  79.    

  80. def cc():
  81.     three_engling()
  82.     tt()
  83.     dd()
  84.     sc()
  85.    
  86. cc()
  87.         
复制代码

@python爱好者.
@nizitao
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-7 14:59:23 | 显示全部楼层
@ckblt @冬雪雪冬
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-7 15:00:05 | 显示全部楼层
如果,有bug和建议,请大家评论回复。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:00:12 | 显示全部楼层
第 34 行什么意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

去掉第 34 行!
干嘛要打印是否是数字?!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

是废话。isdigit()能判断字符串里有没有数字,有返回ture 无flase
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

调试用的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

差不多。
小甲鱼最新课程 -> https://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' ...

啥意思我基本功不太扎实。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

加注释,可读性较差
还有请把函数名起的有意义些,更方便阅读,调试!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  6. da = [each.upper() for each in xiao]
  7. da
  8. ['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']
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

列表推导式!
还有,尽量避免使用 global 关键语句,
空格空多了点!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

在C中也不需要这样写

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>

  5. int GetRand(int min, int max)
  6. {
  7.         return rand() % (max - min + 1) + min;
  8. }

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

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

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

  23. int main(void)
  24. {
  25.         srand((unsigned int)time(0));
  26.         char username_buff[100];
  27.         char password_buff[100];
  28.        
  29.         for(int i = 0; i < 10; ++i)
  30.         {
  31.                 GetUsernamePassword(username_buff, password_buff);
  32.                 printf("用户名: %s\n", username_buff);
  33.                 printf("密码:   %s\n", password_buff);
  34.                 printf("\n");
  35.         }

  36.         return 0;
  37. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:16:53 | 显示全部楼层
dd() 和 tt() 是不是应该整合在一起?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 15:56:30 | 显示全部楼层
好优秀啊 前来学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 16:12:07 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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