Python3関連のことを調べてみた

Python3関連のことを調べてみた

Python htmlの&_amp;(_を抜いて) の使用例

& シーケンスはよく目にすることがあると、思います。&_amp;は自分自身を&に変えます。&_lt;,&_gt;(<,>)これですよね。これは<>とは区別できます。<>の中に&_lt;と&_gt;は別の物と認識されます。<>この中に書き込めます<>それで、<>はスプリットに使えます。
また、<br>これは知っていますよね。改行記号です。\\n(h0d0a)です。普通に書くと、ファイル内もテキストも改行しますが、<br>にすると、起こりません、ニューラインが。実はとても、便利なんですよ。
あまり使わない&_quot; " これ、非常に面倒なんです。文の中に1個だけ使おうとする時、でも、2個だと、閉じてしまうか、エラーになるんです。接続子がないからです。
とまぁ、便利なのは、分っていただいた所で、これって、勝手に「テンポラリシーケンス」として、作られる、て知っていましたか?
念のため\\nを<br>に変えて、\\nを今後に使えるように、変数を置換します。その後、ファイルに変えるシーケンス(&wl_0;)を中に使ってい

元記事を表示

なでしこ3はPythonより6.5倍速い!ベンチマークしてみました

なでしこの実行速度が話題になっていたので、久々に、手元にあるMacbook Pro(m1)でベンチマークしてみました。なでしこ3のPC版(Node.js版)と各種スクリプト言語を比較してみましょう。

# 再帰処理フィボナッチ勝負

まずはフィボナッチで試してみましょう。

## なでしこ3

なでしこ3.4.24で試してみました。

“`nadesiko:fib.nako3
●FIB(Nの)
  もし、N<2ならばNで戻る。   ((N-1)のFIB)+((N-2)のFIB)で戻る。 ここまで。 (40のFIB)を表示。 ``` 実行してみると、下記のように4秒かかりました。 ``` time cnako3 fib.nako3 102334155 cnako3 fib.nako3 3.94s user 0.05s system 98% cpu 4.078 total ``` ## Python3 次に、Python 3.9.7で試してみます。速度には影響しないものの、タイプヒントも付けてみました。 ```python:fib.py def fib(n:int) -> in

元記事を表示

フィボナッチ数 (paizaランク D 相当)

https://paiza.jp/works/mondai/array_primer/array_primer__fibo

フィボナッチ数列をプログラムで表現する問題。
1番目は0,2番めは1,3番目以降は1番目と2番めの数の和・・・というやつ
そのままプログラミングした

“`py
N = int(input())
ans = 0
num1 = 0
num2 = 0
for i in range(N):
if i + 1 == 1:
ans = 0
num1 = 0
print(ans)
if i + 1 == 2:
ans = 1
num2= 1
print(ans)
if i + 1 > 2:
ans = num1 + num2
print(ans)
num1 = num2
num2 = ans

“`
下手くそなプログラミングだなぁ。。。
答えを見てみた。
配列をうまく使っていた。
なので書

元記事を表示

CuPyの “cannot open source file”

# CuPyのエラー

Windows11
CuDa: 11.7

仮想環境を作り
“`bash
py -m veve venv
“`

“`bash
pip install cupy-cuda11x
“`

“`python
import cupy

A = cupy.arange(9).reshape(3, 3).astype(‘f’)
“`

エラー発生
> CompileException: … : catastrophic error: cannot open source file ” cupy/complex.cuh”

# 解決法
venvのフォルダ名に全角、スペースをいれない(どちらが要因かは未調査)

元記事を表示

Openpyxlのインストール成功した方法 (M2)

はじめまして、ギリギリ大学生のなおぽんです。
Macbook(M2)にOpenpyxlをインストールできない!ってなった時にインストールできた方法を簡易的にまとめました!

## 私の環境
– Macbook Pro (M2)
– Python 3.9.1

## インストールできない!(発狂)ってなったら
[私がぶち当たったエラーと同じエラー](https://levelup.gitconnected.com/fix-attributeerror-module-numpy-has-no-attribute-float-d7d68c5a4971)
上記の記事によると、openpyxlの依存ライブラリにnumpyが関わっていて、そのnumpyのグレードアップに伴いfloatを削除されたそうです。
そんでもって、「numpyのバージョンでfloat型が存在するバージョンにグレードダウンしたら行けるんじゃね?」ということで実行したら行けました!

※`numpy`の`1.20.0`まで私は下げました。

(記事を突然変異で書こうってなったので私のターミナルに表示されていたエラーメッセージなど

元記事を表示

Streamlitで便利なアプリ作ってみた

# はじめに

CIST (公立千歳科学技術大学) Advent Calendar2023、13日目の記事です!!

https://qiita.com/advent-calendar/2023/cist

約半年弱、大学のプロジェクトの関係などもあり[Streamlit](https://streamlit.io/)というPythonライブラリを勉強してきたので、その成果についてまとめてみました。

# Streamlitとは?

**Streamlit**とは、Pythonのライブラリであり、Webアプリケーションを作成するためのフレームワークです。

PythonでWebアプリ開発を行いたい場合、[Flask](https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/index.html)や[Django](https://docs.djangoproject.com/ja/4.1/)といったライブラリが真っ先に挙げられます。
しかし、それらを学ぶには、HTML・CSS・JavaScriptなどのフロントエンドの知識がある

元記事を表示

営業が仕様書作ってみた

# はじめに
私自身が、ベトナムに在住していて、オフショア会社に勤めております。
日本人コミュニティーのイベントに参加した際、ここなんか非効率だなと考えていた際、外付けの機能でなんか色々作れるのではと思いつき仕様書から書いてみました。

# 前提
・現在の実務は主に営業職です。なお、私が勤めている会社の手は、基本的に借りないものとする。
・勉強している言語はPythonとする。
・本来は、各ドキュメントを使うのですが、今回はこちらのサイトで記録します
・つまり自主制作です。もう一度言います自主制作です。

## 仕様書

### 1. 画面仕様
メイン画面
参加者情報の一覧が表示される。
各参加者の支払い記録、残金、通知が確認できる。
参加者情報入力画面
CSVやエクセルからのファイルアップロードボタンがあり、ファイルを選択することで参加者情報を一括で入力できる。
手動での参加者情報入力フォームが表示され、名前、連絡先などが入力できる。
### 2. 機能仕様
参加者情報の一覧表示
参加者情報が表形式で表示され、名前、支払い記録、残金、通知などが見やすく表示される。
支払いの記録
各参

元記事を表示

動けば良いの!?要件定義ミスと揃わないビンゴ

こんにちは!去年は[MIDIキーボードの記事](https://qiita.com/Lundy/items/2c568f17b9df9b9602e0)を書いてました、$Lundy$ です!
一年ぶりの N/S高等学校 Advent Calendar、様々な技術的な記事に圧倒されてそういった記事を書くのは恐れ多いので、
今年は、プログラミングの中でもあまり注目されない**ある作業**をテーマに、体験談ベースの話を書かせていただきます!

この記事は二部構成です。

第一章では、今回の体験談を紹介しています。
プログラミングに関して知識が無くても読めるように工夫したので、専門外の方もぜひ!

第二章では、開発過程を紹介しています。
ビンゴの生成にまつわるオリジナルのアルゴリズムを開発したので、紙とペンで手元でも再現できる手順を紹介しています。こちらもぜひ!

### テーマは「要件定義」
あまり注目されない**ある作業**こそ、今回のテーマ「要件定義」です。
要件定義とは、開発を始める前に、何を作れば良いかを明確にする作業のこと。
この記事では「要件定義」のミスを巡る失敗について体験談ベー

元記事を表示

配列の最大最小 Python3編

https://paiza.jp/works/mondai/array_primer/array_primer__array_minmax

“`py
N = int(input())
A = list(map(int,input().split()))
print(max(A),min(A))

“`
前にもやったことがあるのでわかったが、
他にもNをつかった出力方法がある

“`py
print(A[N-1],A[0])
“`
たしかに!!

つぎに平均を求めてそこから高いやつだけ出力する問題

https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step3
色々考えたけどオードソックスに。。。

“`py
N = int(input())
A = list(map(int,input().split()))
summary = 0
for i in A:
summary += i

average = summary / N

for i in A:
if i >= av

元記事を表示

それ,numpy で書かない?–4–

## それ,numpy で書かない?–4–

for ループが遅いのに,それを使わざるを得ない選択肢を採っていないかな?

課題:random.random() とか random.uniform() を使うものだから for ループを使わないといけなくなるというジレンマ

https://qiita.com/yamadasuzaku/items/81c9750cf96a844aec38 のモンテカルロ法によるシミュレーション部分は以下のようになっている。

“`python
# 円と長方形の両方に含まれる点の数を数える
overlap_count = 0
for _ in range(num_points):
# 一様な密度で円内の点を生成
angle = random.uniform(0, 2 * math.pi)
r = math.sqrt(random.uniform(0, 1)) * radius
x = r * math.cos(angle)
y = r * ma

元記事を表示

python3のroundは銀行丸め(にハマったのでメモ)

pythonのroundは銀行丸めpythonのroundは銀行丸め
pythonのroundは銀行丸めpythonのroundは銀行丸め
pythonのroundは銀行丸めpythonのroundは銀行丸め

pythonのroundは銀行丸めなんだったら!!
ヨシッ覚えた(たぶん半年後ぐらいにまたハマる)
半日無駄にしたからな、次から同じミスはしない。

pythonとrubyで同じコード書いたはずなに何故か同じ結果にならず調べたら四捨五入するroundの挙動が違っていました。
分かりやすくするために小規模テスト。
“`python3:test.py
test = 0.5000000
for ii in range(10) :
temp = test + ii
print(round(temp),”{:.30f}”.format(temp) )
“`
この実行結果は下記のようにX.5の時に偶数側に丸められます
銀行丸めとかなんか金額の平均計算したり合計したりするときに誤差が少なくなる丸めかたたらしいです
“`実行結果
0 0.500000000

元記事を表示

i 番目の出力 4 Python3編

https://paiza.jp/works/mondai/array_primer/array_primer__string_i-thinput_step4

“`py
N,M,L = map(int,input().split())
A = input().split()
Ans = A[N-1]
print(Ans[L-1])

“`

でも答えを見ると上の最後の二行はもっと短くできて

“`py
print(A[N-1][L-1])
“`

元記事を表示

数値と数字

初心者向け(?)の記事で print() の例を示すとき,わざわざ

“`Python
price = 180
print(“バナナ” + str(price) + “円”)
“`

と書くのは,数値と数字の違いを注意喚起しているからなのだろうか?とてもそうだとは思えない。
なぜわざわざ str() を使っって,しかも文字列連結 + を使って…
自分がそう思い込んでいて,それを他の人にも善意で教えると…

“`Python
price = 180
print(“バナナ”, price, “円”)
“`
あるいは

“`Python
price = 180
print(f”バナナ {price} 円”)
print(f”バナナ{price}円”)
“`

でいいじゃないか。

price の前後に空白が置かれるかどうかの違いではあるが,空白を置くほうが好ましいと思うがなあ。

ちなみに,`print(“バナナ”, price, “円”)` みたいなので price の前後に空白が置かれるかどうかはデフォルトで決まっていたりして,空白が置かれないのがデフォルトの言語もあ

元記事を表示

要素の削除・挿入 Python3編

https://paiza.jp/works/mondai/array_primer/array_primer__elm_erase

忘れてしまったので調べて書いた。
要素削除には`pop()`か、`del`をつかう。
違いは、popは()内に(●−1)番目を書き、
delは、配列[●−1]とかく

“`py
N,M = map(int,input().split())
A = list(map(int,input().split()))
A.pop(M-1) # この行は del A[M-1] でもOK
print(*A,sep=”\n”)
“`
次は挿入

https://paiza.jp/works/mondai/array_primer/array_primer__elm_insert

要素挿入には`insert()`
下記のように使う。

“`py
N,M,K = map(int,input().split())
A = list(map(int,input().split()))
A.insert(M-1,K)
print(*A,sep=”\n”)
“`

元記事を表示

Pythonでコンプガチャの期待値を求める

# 概要

マクドナルドでとあるキャンペーンを行うようです。

**マクドナルドのハッピーセット「ハローキティ50周年」**
– 第1弾 12月15日(金)~12月21日(木) キティのぬいぐるみ**25種**
– 第2弾 12月22日(金)~12月28日(木) キティのぬいぐるみ**25種**
– 第3弾 12月29日(金)~       第1弾・第2弾で登場した全**50種**

https://www.mcdonalds.co.jp/company/news/2023/1207a/

50種全部ほしいのですが、どうやらランダムっぽいです。
そこで、コンプできる回数の期待値はどうなるか、気になってしまったので、コンプガチャと見立てて、Pythonでプログラムを作成していこうと思います。

# コンプガチャの期待値を計算

まず前提として、確率は全部均等とします。また、順番も完全ランダムとします。

コンプガチャの期待値を求める式は以下の通りです。

“`math
コンプガチャ期待値=n\sum_{k=1}^{n} \frac{1}{k}
“`

$\sum$(シグマ)に

元記事を表示

youtube-dlを利用した動画ダウンローダーを作成したので紹介

# はじめに

Pythonの`youtube-dl`というライブラリを使用して、簡単にYoutubeなどの動画や音声をダウンロードおよび変換できるツールを作成したので紹介します。

https://github.com/MURAMASA2470/youtube_downloads

# youtube-dlとは

youtube-dlは、Python製のコマンドラインツールで、様々な動画共有サイトから動画や音声をダウンロードするためのツールです。YouTubeだけでなく、多くのサポートされているサイトからメディアをダウンロードすることができます。

### 公式リポジトリ
https://github.com/ytdl-org/youtube-dl

### サポートされている世界中のメディアサイト
https://ytdl-org.github.io/youtube-dl/supportedsites.html

# 使い方

## 環境

– Python 3.x

Python3以上で動作します。2系では動作しない為、バージョンアップしてください。

## インストール

元記事を表示

配列のソート/反転/要素数のカウント/配列末尾への追加 Python3編

https://paiza.jp/works/mondai/array_primer/array_primer__array_sort

こないだコメントで教えていただいたのが早速(出力で)役に立った!
まったく便利だなぁ
答えを見たけど、下記を簡単に書いたものだったので省略

“`py
N = int(input())
A = list(map(int,input().split()))
print(*sorted(A), sep=”\n”)
“`

簡単すぎたので次の問題も

https://paiza.jp/works/mondai/array_primer/array_primer__array_reverse

“`py
N = int(input())
A = list(map(int,input().split()))
print(*reversed(A), sep=”\n”)
“`

やっぱり簡単だったので次の問題も

https://paiza.jp/works/mondai/array_primer/array_primer__elm_count

“`p

元記事を表示

配列の連結 Python3編

https://paiza.jp/works/mondai/array_primer/array_primer__array_join

extendで連結
“`py
N,M = map(int,input().split())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
A.extend(B)
for i in A:
print(i)

“`

でも+でできるらしい。。。
“`py
N,M = map(int,input().split())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
Ans = A + B
for i in A:
print(i)

“`

元記事を表示

[Python]数字を扱うときの型の注意(整数型,文字列型)

# 本記事の概要
本記事は数字を扱うときに整数型,文字列型どっちで扱うのかを注意しない自分が困りますよという内容です.

## 早めの結論
1. ソート順が異なります
1. 言語によって等価演算の扱いが異なります

## 注意1: ソート順

“`Python
# リスト
int_list = [i for i in range(20)] # 整数型のリスト
str_list = [str(s) for s in range(20)] # 文字列型のリスト

# ソート
int_list = sorted(int_list)
str_list = sorted(str_list)
“`

ソート順確認
“`Python
print(int_list)
print(str_list)

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# [‘0’, ‘1’, ’10’, ’11’, ’12’, ’13’, ’14’, ’15’, ’16’, ’17’, ’18’, ’19’, ‘2’,

元記事を表示

本当に最低限だけ覚えて一瞬で使い始めるPolars入門

# はじめに

株式会社LITALICOでエンジニアをしています@yknoguchiです。
この記事は[『LITALICO Advent Calendar 2023』](https://qiita.com/advent-calendar/2023/litalico)10日目の記事です。

ちなみに今日は僕の誕生日でもあります。めでたい!
来年もきっと誕生日駆動アドベントカレンダーをやると思います。

## この記事の特徴

:::note info
この記事では、Polarsの詳しい使い方の解説は行いません。
:::

この記事の目標は、以下のとおりです。

**「これを読むことで最低限のPolarsの使い方を覚え、とりあえずすぐにPolarsを触れる」**

QiitaにはPolarsの解説記事が上がっていますので、詳しい使い方はそちらをご確認ください。この記事ではあくまでPolarsを始める最初の一歩を想定しています。そのため、必要最低限の機能しか紹介していません。

## Polarsとは

Polarsとは、Pythonで大量のデータフレームを集計するときに使用するライブラリで

元記事を表示

OTHERカテゴリの最新記事