2017-01-29 32 views

回答

2

另一种选择是刚刚从你首先想要的选项中进行选择:

myNum = random.choice(('j', '2', '3', '4', '5')) 

# Equivalently, assuming they're all one character values: 
myNum = random.choice('j2345') 

甚至可能会遇到触摸更快,因为有没有类型转换需要(并且文字常量的tuple至少在CPython中缓存在函数/模块常量中,所以不会一遍又一遍地重构)。

+0

对不起,我的意思是,你如何创建一个计数器来显示random.choice不选择字母j的次数 – user7486559

+0

@ user7486559:这听起来很像[XY问题](http://meta.stackexchange.com/q/66377/322040)。如果你只关心'j'出现的次数,那么你根本不需要'j''',只需要20%的时间增加一个计数器。增加一个计数器是微不足道的,如果你不太了解,你真的需要参加一些编程课程,你不会很好地学习如何在SO上提出微不足道的问题。 – ShadowRanger

0

只需使用一个if语句:

 import random 

    for i in range(1): 
      myNum = random.randint(1, 5) 
      if myNum == 1: 
       print("j") 
+0

'我在范围内(1):'没有什么用处 –

+0

@ Jean-FrançoisFabre:尽管OP也做了。可能希望提出这个问题的评论。 – ShadowRanger

+0

这是事实,它应该更像这样:对于我在范围内(10): – Ajax1234

1

只要它是从字符串长度可达9只是一个单一的字符,你可以这样做:

my_chr='j2345'[random.randint(0,4)] 

只要确保该字符串的长度相同的随机INT的电位范围。

+0

嗯,那永远不会选择'j',并在20%的时间内得到IndexError。我的回答中的'random.choice'选项避开了让你的界限错误的风险,而在其他方面是等价的。 – ShadowRanger

+0

@ShadowRanger:谢谢。固定。 – dawg