我得到这个randrange()范围是否正确?

时间:2015-11-06 07:48:39

标签: python python-3.x python-3.4

我正在尝试完成这项功课我已经完成了几乎所有的功能,除了格式化以使它看起来可读和我一直有的这个小问题,我似乎无法得到这个{{1}正常工作。它大部分时间都有效,但我经常在底部得到错误。

public class ToolBarTestActivity extends AppCompatActivity {

private Toolbar toolbar;
private ListView mListView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tool_bar_test);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);


    mListView = (ListView) findViewById(R.id.list_view);

    final String[] catnames = new String[] { ... // 100 strings
    };

    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, catnames);
    mListView.setAdapter(adapter);

}

我正在努力让rand_word randrange起作用,但我似乎弄错了。我的特殊错误是:

randrange()

2 个答案:

答案 0 :(得分:2)

您可以将范围选项更改为从您的第一个值开始,即Add Config Transform,或者您可以使用1直接选择单词

choice

答案 1 :(得分:0)

而不是:

rand_word = str(dict_of_strings[random.randrange(0,10)])

使用此:

rand_word = str(dict_of_strings[random.randint(1, len(dict_of_strings))])

有两个原因:

  • 您的密钥从1开始,而randrange()不包括端点,而randint()则包含端点,因此从0开始会导致大约10%的错误。

  • 使用len(dict_of_strings)获取端点意味着您可以使用不同的词组。

但是,random.choice(dict_of_strings)更合适。