定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)
#习题2:定义一个类:实现功能可以返回随机的10个数字,随机的10个字母,
#随机的10个字母和数字的组合;字母和数字的范围可以指定 class RandomString(): #随机数选择的范围作为参数,如(1~100)字母 ('A'~'z'),大写字母在前 按ascii值排列先后
def __init__(self,start_num=0,end_num=100,start_alpha='A',end_alpha='z'):
import string
if not isinstance(start_num,int) or not isinstance(end_num,int) or \
not isinstance(start_alpha,str) or not isinstance(end_alpha,str) or \
(start_alpha not in string.ascii_letters or end_alpha not in string.ascii_letters):
print('参数类型错误,请重新输入!')
return None
self.start_num=start_num
self.end_num=end_num
self.start_alpha=start_alpha
self.end_alpha=end_alpha #生成要求数量随机数字,num 随机数的数量
def random_digits(self,num):
print('self.start_num,self.end_num:',self.start_num,self.end_num)
if not isinstance(num,int):
print('数字类型输入错误,请重新输入')
return None
from random import randint
num_list=[]
for i in range(num):
num_list.append(randint(self.start_num,self.end_num))
return num_list #生成要求数量随机字母,大小写混合
def random_letters(self,num):
if not isinstance(num,int):
print('数字类型输入错误,请重新输入')
return None
from random import randint
import string
all_letters=string.ascii_uppercase+string.ascii_lowercase
start_position=all_letters.find(self.start_alpha)
end_position=all_letters.find(self.end_alpha)
if start_position>end_position:
start_position,end_position=end_position,start_position letters_list=[]
for i in range(num):
letters_list.append(string.ascii_letters[randint(start_position,end_position)])
return letters_list def random_digits_letters(self,num):
digits_string=list(range(self.start_num,self.end_num+1))
print('digits_string',digits_string)
import string
all_letters=string.ascii_uppercase+string.ascii_lowercase
print('all_letters',all_letters)
print('self.start_alpha',self.start_alpha)
print('self.end_alpha',self.end_alpha)
start_position=all_letters.find(self.start_alpha)
end_position=all_letters.find(self.end_alpha)
letters_string=list(all_letters[start_position:end_position+1])
print('letters_string',letters_string) from random import choice
all_string=digits_string+letters_string
print('all_string',all_string)
all_list=[]
for i in range(num): all_list.append(choice(all_string))
return all_list randomdigitalpha=RandomString(2,100,'W','e') #
print(randomdigitalpha.start_num)
print(randomdigitalpha.random_digits(10)) print(randomdigitalpha.random_letters(5)) print(randomdigitalpha.random_digits_letters(15))
定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)的更多相关文章
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.Ru ...
- JAVA 类的定义(定义一个类,来模拟“学生”)
package Code413;/*定义一个类,来模拟“学生”属性 (是什么) 姓名 年龄行为(能做什么) 吃饭 睡觉 学习对应到Java的类当中 成员变量(属性) String nanme; //姓 ...
- 怎样用Javascript定义一个类
其实Javascript中没有类这个定义,但是有类这个概念.很多人都写过这样的代码,对,没错,就是如下代码,清晰的不能再清晰了,就是一个关键字 function,然后定义一个方法名,方法名后紧跟一对括 ...
- Python3.x:定义一个类并且调用
Python3.x:定义一个类并且调用 1,定一个类Shrjj(其中有属性:name, jjzt,fbsjj,etf,lof,fjlof): class Shrjj(object): def __in ...
- 103-PHP定义一个类
<?php class ren{ //定义人类 } class mao{ //定义猫类 } new ren(); //实例化人类 new mao(); //实例化猫类 new mao(); // ...
- 用es6的class关键字定义一个类
es6新增class关键字使用方法详解. 通过class关键字,可以定义类.基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法 ...
- 定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。
这个题让我更加明白了类创建对象的实质 代码中用到:1.对象作形参;2.对象作返回值 以下用代码具体分析: class Point1{ public double x; public double y; ...
- 按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
package jvxing; public class Jvxing { //成员变量 private double width; private double chang; public doub ...
- 28.按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
//矩形父类 package d922A; public class Rect { private double l,w; Rect(double c,double k) { l=c; w=k; } ...
随机推荐
- Win10利用CodeBlocks搭建Objective-C开发环境(二)
工程文件已经建好:但此时会发现main.m文件为灰色,且无法点击,此时需右键点击main.m文件,在option选项中勾选 compile file和 link file选项. 设置完成后,双击mai ...
- 机器学习第一章——NFL的个人理解
第一篇博客,想给自己的学习加深记忆.看到书中第一个公式时,本来想直接看证明结果就好,然鹅...作者在备注上写:这里只用到一些非常基础的数学知识,只准备读第一章且有“数学恐惧”的读者可跳过...嘤嘤嘤, ...
- Windows Server 2012 R2蓝屏
最近发现某个医院客户Windows Server 2012 R2 DataCenter的系统频繁蓝屏重启,重启没过一天再一次出现,反反复复折腾好几天,提示信息ntoskrnl.exe.mssmbios ...
- hdu 1106
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- Windows 10系统快捷键
虚拟桌面 创建新的虚拟桌面:Win + Ctrl + D 关闭当前虚拟桌面:Win + Ctrl + F4 切换虚拟桌面:Win + Ctrl +左/右 任务视图:Win + Tab Win10常用W ...
- 中国大数据企业排行榜V6.0- 5 年后再去看看中几个大数据公司的发展状况
2019年5月27日,首席数据官联盟在贵阳举办的2019中国国际大数据产业博览会上正式发布了<中国大数据企业排行榜V6.0> 本次排行榜新增8个垂直行业和领域.上榜企业是从全国五千多家 ...
- protobuf 序列化 使用
protocol buff是一种协议,是谷歌推出的一种序列化协议 .Java序列化协议也是一种协议 两者的目的是,将对象序列化成字节数组,或者说是二进制数据 导包 <dependency> ...
- MEAN: AngularJS + NodeJS的REST API开发教程
Node.JS https://www.jdon.com/idea/nodejs/web-app-with-angularjs-and-rest-api-with-node.html Mean是一个热 ...
- jenkins sonarqube 代码检测
#jenkins插件: SonarQube Scanner #Jenkins配置 Task to run:scan #Analysis properties: sonar.projectKey=ser ...
- python学习-17 列表list 2
# 1. 选择嵌套列表里的元素(内部进行了for循环) li = [1,2,",45]],"abc",True] a = li[3][2][1] print(a) 运行结 ...