Python3の四捨五入

Pythonの四捨五入は思った挙動をしないことがある。多分、丸め込みが原因。

In [1]: round(2.5, 0)
Out[1]: 2.0

In [2]: round(2.0, 0)
Out[2]: 2.0

In [3]: round(3.5, 0)
Out[3]: 4.0

四捨五入はDecimalを使用したほうがいい。

from decimal import Decimal

scores = '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split()

def _round(a_list, y):
    data = list(map(Decimal, a_list))
    return round(sum(data) / len(data), y)

# 小数第二位の場合
print(_round(scores, 2))

AWS(Red Hat)にpython3.6をインストールしてpipやvirtualenvを作成する方法。

  • 2020/02 追記 ↓が楽
add-apt-repository ppa:deadsnakes/ppa
apt-get update
apt-get install python3.6 python3.6-venv -y

askubuntu.com

python3.6をインストール。

##いるものをインストール。
$ sudo yum install yum-utils make wget
$ sudo yum install zlib-devel -y
$ sudo yum install gcc libffi-devel python-devel openssl-devel
$ cd ~
## wgetよりpython3.6をゲット
$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
$ tar xzf Python-3.6.1.tgz
$ cd Python-3.6.1
$ ./configure --enable-optimizations

## /usr/local/binにインストールするため。
$ sudo make -j8  
$ sudo make altinstall

## pip3.6もインストールされる。
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0

virtualenvのインストールとvirtualenvの作成。pipはhttpsのものはできない。

# /usr/local/bin/pip3.6 install virtualenv virtualenvwrapper

$ virtualenv --version
15.1.0

$ sudo vi ~/.bash_profile

### Virtualenvwrapper
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.6
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
fi
###################

$ source ~/.bash_profile

# bigdata作成
$ mkvirtualenv bigdata
$ workon bigdata
(bigdata) $ できるようになったーーーー

https://virtualenv.pypa.io/en/stable/changes/

pypi.python.org

stackoverflow.com

qiita.com

SQLでテーブルを大量削除する方法

SQL_tmp_を含むテーブルを大量に削除する方法を教えてもらったので、メモする。

echo 'show tables;' | mysql -uroot [db名] | grep '_tmp_' > list
for x in `cat list`;do echo "drop table $x;" ;done > drop.sql
cat drop.sql
cat drop.sql | mysql -uroot [db名]