


The English version of the README.md file was created by a translator. Therefore, the translation may not be accurate. If you can use Korean, we recommend that you view the Korean document.
[한국어 문서 바로가기(korean)](https://github.com/yhg4908/ranpick.py/blob/main/README_KR.md)
# Ranpick
[](https://pypi.org/project/ranpick)

[](https://pepy.tech/projects/ranpick)
[](https://pepy.tech/projects/ranpick)
Ranpick complements the shortcomings of the existing PRNG method and generates random numbers with nanoseconds and hash-based systems.
---
## Installation
1. Use 'pip' to install the ranpick:
```bash
pip install ranpick
```
2. Add the import statement below to the code (.py) to import the ranpick:
```python
from ranpick import (modules)
```
## Modules and Use Guides
As of `2024.12.22 (KST)`, the modules currently available are as follows.
- rannumber: `Produces a random number in the form of a number`
- ranrandom: `Select a random value from the list.` (2.1.0~)
### number - Generating a numeric random number
`Number` generates a random number in the form of a normal number.
You can generate numbers up to 0 ~ 1 (Supported from 3.0.0)
#### The basics
The number module can be used in the following ways.
```python
random_number = rannumber() # random_number variable, store the random number (0 ~ 1) that is selected as the random number module.
print(random_number) # print_number The value of the variable random_number.
print(rannumber()) #rampicknumber Outputs the value of the random number drawn by the module.
```
This is the basic method of using the number module. You can generate random numbers with `rannumber()`.
#### Limiting the Number of Random Numbers
You can also limit the number of random numbers. The example code below limits random numbers to between 5 and 10.
```python
limit_number = rannumber(5, 10)
print(limit_number)
print(rannumber(5, 10))
```
`number(5, 10)` is a code that limits the number of random numbers to between 5 and 10. You can complete it by adding `starting numbers, arriving numbers` in `()`.
Calculations such as ' `2+3,10/2` can also be used to limit the number of random numbers and can be used in all the contents to be described later.
#### Set decimal place
By default, a generated random number can only be generated with integers. However, if you refer to the example below, you can output a small number of outputs.
```python
decimal_number = rannumber(0, 1, "d3")
print(decimal_number)
print(rannumber(0,1, "d3"))
```
This example code is a code that outputs numbers between 0 and 1 up to three decimal places. `"d3"` means that it outputs up to three decimal places.
If `"d4"` is used, it can be output up to four decimal places.
It can be up to 20 digits.(3.0.0~)
#### Application
The codes below are created by applying this module, other libraries, and modules. In addition to the examples used here, a variety of other libraries and applications are possible.
##### DataTime Library Application
Below is the code applied using the datetime library.
```python
import ranpick
from datetime import datetime
date_number = int(datetime.now().strftime("%Y%m%d%H%M%S"))
print(rannumber(date_number, date_number × 10))
```
This code was made to output random numbers by leveraging the time output from the datetime library.
### ranrandom - Random Value Selection
`ranrandom` selects and outputs a random value from a list.
#### Basic Usage
You can use the `ranrandom` module as shown below:
```python
random = ranrandom("left", "right", "center", "miss")
print(random)
print(ranrandom("left", "right", "center", "miss"))
```
You can use `ranrandom()`. Inside the parentheses, you can input items in a format such as `("win", "miss")`.
One of the items listed here will be randomly selected.
At least two items must be provided.
#### Setting Probabilities
You can set the probabilities for each item. Please refer to the example code below:
```python
random = ranrandom(("left", 33), ("right", 33), ("center", 33), ("miss", 1))
print(random)
print(ranrandom(("left", 33), ("right", 33), ("center", 33), ("miss", 1)))
```
You can add another pair of parentheses `()` inside the main `()`.
Within this added `()`, you can specify items in the format `("item_name", probability[%])`.
The total sum of all probabilities must equal 100, otherwise an error will occur.
```python
print(ranrandom("left", ("right", 50), "center", "miss"))
```
If some probabilities are omitted as shown above, the remaining probabilities will be automatically redistributed among the unspecified items.
#### Multiple selection (2.2.0~)
Of course, multiple selection is possible. Please follow the example below.
```python
random = ranrandom("a", "b", "c", "d", DS=2)
print(random)
```
This code selects 2 out of a, b, c, d and prints them. DS is in charge of how many to select and print.
If the value of DS is 2, 2 are selected from the list. If `DS=3`, 3 are selected and printed.
```r
a, d
```
It is printed like this.
##### Print in list form
Duplicated values can also be printed in list form.
```python
random = ranrandom("a", "b", "c", "d", DS=3, as_list=True)
print(random)
```
If you want to print in list format, use `as_list`. If you set the value of as_list to True and run it, it will print as follows.
```r
['b', 'c', 'a']
```
## Bug report
Please report bugs on the site below (github).
<https://github.com/yhg4908/ranpick.py/issues>
Raw data
{
"_id": null,
"home_page": null,
"name": "ranpick",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "random number generation entropy ranpick list Probability",
"author": "rainy58",
"author_email": "yhg4908@naver.com",
"download_url": "https://files.pythonhosted.org/packages/87/bc/0fb748e5fea72f61e256b7504e7e097fbf24fa84f0e08b2badc0473bde64/ranpick-3.1.0.tar.gz",
"platform": null,
"description": "\n\n\n\n\nThe English version of the README.md file was created by a translator. Therefore, the translation may not be accurate. If you can use Korean, we recommend that you view the Korean document.\n[\ud55c\uad6d\uc5b4 \ubb38\uc11c \ubc14\ub85c\uac00\uae30(korean)](https://github.com/yhg4908/ranpick.py/blob/main/README_KR.md)\n\n# Ranpick\n[](https://pypi.org/project/ranpick)\n\n[](https://pepy.tech/projects/ranpick)\n[](https://pepy.tech/projects/ranpick)\n\n\n\nRanpick complements the shortcomings of the existing PRNG method and generates random numbers with nanoseconds and hash-based systems.\n\n\n---\n\n\n\n## Installation\n\n\n\n1. Use 'pip' to install the ranpick:\n\n ```bash\n pip install ranpick\n ```\n2. Add the import statement below to the code (.py) to import the ranpick:\n\n ```python\n from ranpick import (modules)\n ```\n\n\n\n## Modules and Use Guides\n\n\nAs of `2024.12.22 (KST)`, the modules currently available are as follows.\n\n- rannumber: `Produces a random number in the form of a number`\n- ranrandom: `Select a random value from the list.` (2.1.0~)\n\n\n\n### number - Generating a numeric random number\n\n\n`Number` generates a random number in the form of a normal number.\n\nYou can generate numbers up to 0 ~ 1 (Supported from 3.0.0)\n\n\n\n#### The basics\n\n\n\nThe number module can be used in the following ways.\n```python\nrandom_number = rannumber() # random_number variable, store the random number (0 ~ 1) that is selected as the random number module.\n\nprint(random_number) # print_number The value of the variable random_number.\nprint(rannumber()) #rampicknumber Outputs the value of the random number drawn by the module.\n```\nThis is the basic method of using the number module. You can generate random numbers with `rannumber()`.\n\n\n#### Limiting the Number of Random Numbers\n\n\n\nYou can also limit the number of random numbers. The example code below limits random numbers to between 5 and 10.\n```python\nlimit_number = rannumber(5, 10)\n\nprint(limit_number)\nprint(rannumber(5, 10))\n```\n`number(5, 10)` is a code that limits the number of random numbers to between 5 and 10. You can complete it by adding `starting numbers, arriving numbers` in `()`.\n\nCalculations such as ' `2+3,10/2` can also be used to limit the number of random numbers and can be used in all the contents to be described later.\n\n\n#### Set decimal place\n\n\n\nBy default, a generated random number can only be generated with integers. However, if you refer to the example below, you can output a small number of outputs.\n```python\ndecimal_number = rannumber(0, 1, \"d3\")\n\nprint(decimal_number)\nprint(rannumber(0,1, \"d3\"))\n```\nThis example code is a code that outputs numbers between 0 and 1 up to three decimal places. `\"d3\"` means that it outputs up to three decimal places.\n\nIf `\"d4\"` is used, it can be output up to four decimal places.\n\nIt can be up to 20 digits.(3.0.0~)\n\n\n#### Application\n\n\n\nThe codes below are created by applying this module, other libraries, and modules. In addition to the examples used here, a variety of other libraries and applications are possible.\n\n##### DataTime Library Application\nBelow is the code applied using the datetime library.\n```python\nimport ranpick\nfrom datetime import datetime\n\ndate_number = int(datetime.now().strftime(\"%Y%m%d%H%M%S\"))\n\nprint(rannumber(date_number, date_number \u00d7 10))\n```\nThis code was made to output random numbers by leveraging the time output from the datetime library.\n\n### ranrandom - Random Value Selection\n`ranrandom` selects and outputs a random value from a list.\n\n#### Basic Usage\nYou can use the `ranrandom` module as shown below:\n```python\nrandom = ranrandom(\"left\", \"right\", \"center\", \"miss\")\n\nprint(random)\nprint(ranrandom(\"left\", \"right\", \"center\", \"miss\"))\n```\nYou can use `ranrandom()`. Inside the parentheses, you can input items in a format such as `(\"win\", \"miss\")`.\nOne of the items listed here will be randomly selected.\nAt least two items must be provided.\n\n#### Setting Probabilities\nYou can set the probabilities for each item. Please refer to the example code below:\n```python\nrandom = ranrandom((\"left\", 33), (\"right\", 33), (\"center\", 33), (\"miss\", 1))\n\nprint(random)\nprint(ranrandom((\"left\", 33), (\"right\", 33), (\"center\", 33), (\"miss\", 1)))\n```\nYou can add another pair of parentheses `()` inside the main `()`.\nWithin this added `()`, you can specify items in the format `(\"item_name\", probability[%])`.\nThe total sum of all probabilities must equal 100, otherwise an error will occur.\n```python\nprint(ranrandom(\"left\", (\"right\", 50), \"center\", \"miss\"))\n```\nIf some probabilities are omitted as shown above, the remaining probabilities will be automatically redistributed among the unspecified items.\n\n#### Multiple selection (2.2.0~)\nOf course, multiple selection is possible. Please follow the example below.\n```python\nrandom = ranrandom(\"a\", \"b\", \"c\", \"d\", DS=2)\n\nprint(random)\n```\nThis code selects 2 out of a, b, c, d and prints them. DS is in charge of how many to select and print.\n\nIf the value of DS is 2, 2 are selected from the list. If `DS=3`, 3 are selected and printed.\n```r\na, d\n```\nIt is printed like this.\n\n##### Print in list form\nDuplicated values \u200b\u200bcan also be printed in list form. \n```python\nrandom = ranrandom(\"a\", \"b\", \"c\", \"d\", DS=3, as_list=True)\n\nprint(random)\n```\nIf you want to print in list format, use `as_list`. If you set the value of as_list to True and run it, it will print as follows.\n```r\n['b', 'c', 'a']\n```\n\n## Bug report\n\n\nPlease report bugs on the site below (github).\n\n<https://github.com/yhg4908/ranpick.py/issues>\n",
"bugtrack_url": null,
"license": null,
"summary": "A high-entropy random number generation library",
"version": "3.1.0",
"project_urls": {
"Issues": "https://github.com/yhg4908/ranpick.py/issues",
"Repository": "https://github.com/yhg4908/ranpick.py"
},
"split_keywords": [
"random",
"number",
"generation",
"entropy",
"ranpick",
"list",
"probability"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4cde5456d346d968baa4662f64a069f7c06f9d0ff35a7b758b07fc0303f3bda7",
"md5": "375a1f47d9a65f48dd61b41a37a12653",
"sha256": "4e76c0a1389c117c9c3d171758f7825f0e3be1f3cf41384c4f7f6c38f01fed00"
},
"downloads": -1,
"filename": "ranpick-3.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "375a1f47d9a65f48dd61b41a37a12653",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 7550,
"upload_time": "2025-07-13T11:17:16",
"upload_time_iso_8601": "2025-07-13T11:17:16.282755Z",
"url": "https://files.pythonhosted.org/packages/4c/de/5456d346d968baa4662f64a069f7c06f9d0ff35a7b758b07fc0303f3bda7/ranpick-3.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "87bc0fb748e5fea72f61e256b7504e7e097fbf24fa84f0e08b2badc0473bde64",
"md5": "de3c8fbbecae5a47129a9b2e66dca090",
"sha256": "76fac6021b6bd795e3b2650871488b28c3ff3c031969d15ccc408d5d7e8c62e5"
},
"downloads": -1,
"filename": "ranpick-3.1.0.tar.gz",
"has_sig": false,
"md5_digest": "de3c8fbbecae5a47129a9b2e66dca090",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 7556,
"upload_time": "2025-07-13T11:17:17",
"upload_time_iso_8601": "2025-07-13T11:17:17.432462Z",
"url": "https://files.pythonhosted.org/packages/87/bc/0fb748e5fea72f61e256b7504e7e097fbf24fa84f0e08b2badc0473bde64/ranpick-3.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-13 11:17:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yhg4908",
"github_project": "ranpick.py",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ranpick"
}