请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

【每日一坑 1】 随机取数

  [复制链接]

0

主题

0

好友

18

积分

新手上路

Rank: 1

发表于 2015-10-5 10:49:11 |显示全部楼层
toddlerya 发表于 2014-7-21 11:53
倒数第二行else中的m_n() 是做什么用的呢?去掉也没影响呀

如果输入错误的话,就会再次调用函数本身,开始新一轮输入。
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

发表于 2016-1-16 11:36:51 |显示全部楼层

  1. import random
  2. import sys

  3. o = []
  4. m = int(input("m = "))
  5. n = int(input("n = "))
  6. if 1 <= m <= n : sys.exit(1)
  7. while len(o) < n:
  8.   a = random.choice(range(1,m+1))
  9.   if a in o: continue
  10.   o.append(a)

  11. o.sort()
  12. print(o)
复制代码
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2016-2-2 16:02:51 |显示全部楼层
crossin先生,请帮我看看代码
我第一次写代码,见笑了,请多批评,你们大家的批评就是我进步的动力,谢谢
#!/usr/bin/python
#coding=utf-8
#下面这个函数是从n个数里随机产生m个数
import random

def sort_m():
    try:
        n = raw_input("please input the total numbers:\t")
        m = raw_input("please int numbers you select:\t")
        msort= set()
        if (m.isdigit & n.isdigit) ==True:
            print "both are digits!OK!ready!"
        else:
            print"plese input digits!"
   

            
        if 0<int(m) & int(m)<int(n):
            mint= int(m)
            nint = int(n)
        else:
            print "wrong input"
            exit
        
        for i in range(0,mint,1):
            ran_int=random.randint(1,nint)
            msort.add(ran_int)
            print "now add this number:\t" , ran_int
        
        print"the final set is as following:\t" , msort
   
    except Exception as e:
        print "please input digits!Not String!"
        
    finally:
        print "END!"
   
if __name__ == '__main__':
    sort_m()
   
    #for i in (0,mint):则只会循环两次
    #isdigit()可以帮忙判断输入的字符是不是数字
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-2-2 22:58:21 |显示全部楼层
xqqxjnt1988 发表于 2016-2-2 16:02
crossin先生,请帮我看看代码
我第一次写代码,见笑了,请多批评,你们大家的批评就是我进步的动力,谢谢
# ...

if (m.isdigit & n.isdigit) ==True
isdigit本身是个函数,你要调用函数,需要加括号
这个条件别这么写。&是按位与操作符。
所以要写成
  1. if m.isdigit() and n.isdigit():
复制代码
其他的条件也类似
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2016-2-3 09:04:51 |显示全部楼层
crossin先生 发表于 2016-2-2 22:58
if (m.isdigit & n.isdigit) ==True
isdigit本身是个函数,你要调用函数,需要加括号
这个条件别这么写。 ...

谢谢先生:)我记下来了,感激
回复

使用道具 举报

2

主题

0

好友

59

积分

注册会员

Rank: 2

发表于 2016-2-6 14:00:19 |显示全部楼层
  1. #coding:utf-8
  2. import random
  3. print '***从n个数中随机选取m个数,确保1<m<n!***'
  4. n = int(raw_input('请输入n:'))
  5. m = int(raw_input('请输入m:'))
  6. lista = range(1,n)
  7. li = []
  8. for i in range(m):
  9.         x = random.choice(lista)
  10.         x_index = lista.index(x)
  11.         li.append(x)
  12.         lista.pop(x_index)
  13. print li
复制代码
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

发表于 2016-3-12 21:13:53 |显示全部楼层
本帖最后由 Suzy 于 2016-3-12 21:14 编辑

是我理解能力有问题么?大家的答案都看不懂呢...
刚开始学习,老师请检查我的作业
========作业分割线=======
print " Press a number: n= "
n = input()

from random import randint
m = randint(1,n)

for i in range(0,m):
    x = randint(1,n)
    print x

print "End"
Hello, Python!
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-3-12 23:14:26 |显示全部楼层
Suzy 发表于 2016-3-12 21:13
是我理解能力有问题么?大家的答案都看不懂呢...
刚开始学习,老师请检查我的作业
========作 ...

可以。不过你这个m不是用户指定,而是随机的。
另外随机的m个数会有重复
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

发表于 2016-3-14 15:13:23 |显示全部楼层
  1. # -*- coding: utf-8 -*-
  2. import random
  3. def choice(m,n):
  4.     if 1<= int(m) <= int(n):
  5.         return '红球:'+str(map(lambda x:'%02d'%x,sorted(random.sample(range(1, int(n)+1),int(m))))) +'\n篮球:'+'%02d'%random.randint(1,n/2)
  6.     else:
  7.         print 'm,n不符合要求'

  8. print choice(6,33)
复制代码
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

发表于 2016-3-28 02:57:35 |显示全部楼层
  1. # coding=utf-8
  2. # 从1~n中,随机取m个数。1<=m<=n
  3. # 随机取双色球号码
  4. # 红球1-33,兰球1-16,红球6个,兰球1个
  5. import random
  6. # 取号,共有属性和方法,1到n取数,取数次数
  7. class ballnum:
  8.     def __init__(self,num):
  9.         self.num=num

  10. class ballcho(ballnum):
  11.     def __init__(self,num,times):
  12.         ballnum.__init__(self,num)
  13.         self.times=times

  14.     def cho(self,times):
  15.         for i in range(times):
  16.             num=random.randint(1,self.num)
  17.             print num,

  18. red=ballcho(33,6)
  19. red.cho(6)
  20. blue=ballcho(16,1)
  21. blue.cho(1)
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 18:06 , Processed in 0.021139 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部