设为首页收藏本站

Crossin的编程教室

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

【每日一坑 1】 随机取数

  [复制链接]

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;
复制代码
回复

使用道具 举报

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

主题

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)
回复

使用道具 举报

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
复制代码
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

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
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

29#
发表于 2013-12-26 19:35:59 |只看该作者
crossin先生 发表于 2013-12-26 10:50
你需要把完整代码和控制台的输出都发上来,才能看出哪里错了。
光是这两个代码片段,看不出来 ...
  1. #coding:utf-8
  2. import random

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

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

  7. a()
  8. print m

  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. #print list_n
  16. slice_m = random.sample(list_n,m)
  17. print slice_m
复制代码
是这个。我想用if语句来控制一下,如果m>n,就重新输入m
回复

使用道具 举报

0

主题

0

好友

84

积分

注册会员

Rank: 2

28#
发表于 2013-12-26 14:05:14 |只看该作者
冒个泡~

Screenshot_10.png (43.09 KB, 下载次数: 347)

Screenshot_10.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

27#
发表于 2013-12-26 10:50:29 |只看该作者
wshqxin 发表于 2013-12-25 20:14
这样定义怎么不对呢?
我想这样用

你需要把完整代码和控制台的输出都发上来,才能看出哪里错了。
光是这两个代码片段,看不出来
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

26#
发表于 2013-12-26 10:47:17 |只看该作者
wshqxin 发表于 2013-12-25 20:14
这样定义怎么不对呢?
我想这样用

你是不是python3?3里面已经没有raw_input了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-18 22:07 , Processed in 0.030151 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部