设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【每日一坑 1】 随机取数

  [复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

31#
发表于 2013-12-26 22:24:59 |只看该作者
wshqxin 发表于 2013-12-26 19:35
是这个。我想用if语句来控制一下,如果m>n,就重新输入m

你不能在函数外面访问一个函数内部定义的变量,它们不是一个作用域的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

32#
发表于 2013-12-27 16:41:51 |只看该作者
crossin先生 发表于 2013-12-26 22:24
你不能在函数外面访问一个函数内部定义的变量,它们不是一个作用域的

恩。。好了。把m全局化了。谢谢先生
  1. #coding:utf-8
  2. import random

  3. n = int(raw_input('输入最大数:'))
  4. print "你输入的最大的数是",n

  5. def a():
  6.         global m
  7.         m = int(raw_input('输入随机出现多少个数'))

  8. a()

  9. if m > n:
  10.         print "你输入的随机数的个数大于你输入的最大数,请重新输入"
  11.         a()

  12. list_n = []
  13. for a in range(1,n+1):
  14.         list_n.append(a)
  15. slice_m = random.sample(list_n,m)
  16. print slice_m
复制代码
回复

使用道具 举报

0

主题

1

好友

78

积分

注册会员

Rank: 2

33#
发表于 2014-1-1 17:55:36 |只看该作者
本帖最后由 nemo 于 2014-1-1 18:03 编辑

import random
bingo=True
while bingo==True:
        print '请输入最大数字'
        n=raw_input()
        print '您需要几个数字'
        m=raw_input()
        if 1 <= int(m) <= int(n):
                def choice(n,m):
                        return sorted(random.sample([i for i in xrange(1,int(n)+1)], int(m)))
                break
        else:
                print"请确认'1<=m<=n'!"
               
print choice(n,m)
回复

使用道具 举报

1

主题

0

好友

50

积分

注册会员

Rank: 2

34#
发表于 2014-6-23 23:56:56 |只看该作者
  1. #!/usr/bin/env python
  2. #coding:cp936

  3. from random import randint

  4. print '*'*6+'从1~n中,随机取m个数'+'*'*6
  5. while(True):
  6.     n=int(raw_input('输入n\n'))
  7.     m=int(raw_input('输入m\n'))
  8.     result=[]
  9.     if m>n or m<1:
  10.         print '注意:1<=m<=n\n重新开始\n'
  11.     else:
  12.         i=1
  13.         while i<=m:
  14.             random=randint(1,n)
  15.             if random not in result:
  16.                 result.append(random)
  17.                 i+=1
  18.         print tuple(result)
  19.         break
复制代码
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

35#
发表于 2014-7-10 21:02:48 |只看该作者
  1. from random import randint
  2. print "请输入最大范围:"
  3. n = input()
  4. print "请输入取出数量"
  5. m = input()
  6. result = []
  7. if m <= 0:
  8.     print "输入有误"
  9. while m > 0:
  10.     result.append(randint(1, n))
  11.     m = m - 1
  12. print result;
复制代码
回复

使用道具 举报

2

主题

0

好友

216

积分

中级会员

Rank: 3Rank: 3

36#
发表于 2014-7-21 11:53:00 |只看该作者
byron 发表于 2013-12-12 20:36

倒数第二行else中的m_n() 是做什么用的呢?去掉也没影响呀
回复

使用道具 举报

2

主题

0

好友

216

积分

中级会员

Rank: 3Rank: 3

37#
发表于 2014-7-21 12:50:32 |只看该作者
#-*- coding: cp936 -*-
import random

print "从1~n中,随机取m个数。n1<=m<=n"

def ran():
    m = int(input("请输入你要得到的数字个数:"))
    n = int(input("请输入你需要的数字的上限:"))
    if 1 <= int(m) <= int(n):
        a = random.sample(range(1,n),m)
        print a
        
    else:
        print("~"*25)
        print("请确定 1<= m <= n?")
        print("~"*25)
        ran()
ran()
   
回复

使用道具 举报

1

主题

1

好友

45

积分

新手上路

Rank: 1

38#
发表于 2015-5-2 23:01:56 |只看该作者

就会这么多,感觉好low~~~

本帖最后由 UFO 于 2015-5-2 23:05 编辑
  1. from random import randint
  2. n = int (input())
  3. m = int (input())
  4. a = 1
  5. while a <= m:
  6.     num = randint(1,n)
  7.     print (num)
  8.     a+=1
复制代码
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

39#
发表于 2015-9-1 02:51:54 |只看该作者
# -*- coding: cp936 -*-
import random

print('n选择为什么数?')
n = input()
print('从n中选几个数m?')
m = input()
lst=[]

if m>n or m<1:
    print('错了哦,1<=m<=n')
else:
    lst = random.sample(range(1,n+1),m)
    print lst
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

40#
发表于 2015-9-15 23:41:50 |只看该作者
import random

n=input('n:')
m=input('m:')
if 1<=m<=n:
   l= [random.randint(1,n) for i in range(0,m)]
   print l
else:
    print "ERRO"
回复

使用道具 举报

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

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

GMT+8, 2024-4-25 04:44 , Processed in 0.052825 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部