- 1. Python リスト
- 2. Pythonで認証・CRUD無しの簡易APIサーバを作る方法
- 3. paiza練習問題(文字列の表示)
- 4. paiza練習問題(ランクC:リスト内の値の比較)
- 5. 【Python】RedmineチケットのカスタムフィールドにPythonからファイル添付する
- 6. 【前編】Pythonでカンタン画像解析~タピオカはいくつ?~ を手直ししてみた
- 7. Pythonでマイクロサービスの作成
- 8. Django の JWT クライアント
- 9. pythonで作る数当てゲーム
- 10. Python3エンジニア認定試験の勉強
- 11. インターネット接続にプロキシサーバ必須な環境にて、PythonのSMTPクライアントでGmailからメールを送る方法
- 12. Windows で「有効なフォントファイルではありません」と表示される場合の対処法
- 13. pipenvをインストールする方法
- 14. たった3時間で言語処理をする。~MeCabとWordCloudとGoogle Colabでサクッと簡単~
- 15. じゃんけんゲーム
- 16. kivyMDチュートリアル其の什肆乃弍 Components – Layout篇
- 17. PostgreSQL: テーブルの所有者を変更する (Python3)
- 18. AOJトライに関する知識知見の記録共有:Volume0-0044
- 19. C# から Python へ JSON の受け渡し
- 20. Python ctypes 構造体 pragma pack (push,1)
Python リスト
—
title: Python リスト
tags: Python Python3
author: Hirakawa123
slide: false
—
#はじめに
基礎から定着させていこうということでリストについてまとめました。
Python 3.8.2##リストの作成
“`py
l = [1,2,3,4,5,6,7,8]
“`
##リストを表示する
“`py
l = [1,2,3,4,5,6,7,8]print(l)
“`
##リストのタイプの確認
“`py
l = [1,2,3,4,5,6,7,8]print(type(l))
“`
##リストにいくつ値が入っているのか
“`py
l = [1,2,3,4,5,6,7,8]print(len(l))
“`
##リストの一部を取得する
“`py
l = [1,2,3,4,5,6,7,8]print(l[0])
print(l[-1])
print(l[1:3])
print(l[:6])
“`
##リストのスキップして取得する
“`py
l = [1,2,3,4,5,6,7,8]
Pythonで認証・CRUD無しの簡易APIサーバを作る方法
Pythonで本格的なAPIサーバを作ろうとすると「Django REST Framework」が真っ先に思い浮かぶと思いますが、簡易的にAPIレスポンスが欲しい時もあると思います。
ここでは、ローカルホスト上でPythonから、認証・CRUD無しでhttpレスポンスを返す方法を2つ紹介します。
### 注意事項
下記方法ではCSRFの対策を行なっていません。
本番環境で使用する際には、他の方法で正しい(想定したサイトの想定したユーザーから受け取った)リクエストかどうかを検証する必要があります。# Python WSGI を使う方法
一番簡易的に使えるのは、Pythonの標準インターフェイスであるWSGI(Web Server Gateway Interface)を使う方法です。WSGIの詳細について、調べれば詳しい記載が出てくると思いますが、今回は簡単にPOSTされたデータを返すAPIサーバを例に挙げます。
“`python:test_api.py
from wsgiref.simple_server import make_server
import jsond
paiza練習問題(文字列の表示)
# 目次
– 解いた問題
– 参考にしたサイト
– 振返り
– 参考コード### 本文
– 解いた問題https://paiza.jp/works/mondai/prob60/substring_9
– 参考にしたサイト
なし
– 振返り
文字列の○番目から○番目を表示する問題。
1文字目を0番目と数えることに注意。– 参考コード(文字列の3番目から6番目を表示)
“`python
a = “tokugawa ieyasu”
print(a[2:6])
# kuga
#print(a[3:6])ではないことに注意
#t o k u g a w a _ i e y a s u
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
“`
paiza練習問題(ランクC:リスト内の値の比較)
# 目次
– 解いた問題
– 参考にしたサイト
– 振返り
– 参考コード### 本文
– 解いた問題https://paiza.jp/works/mondai/prob60/total_value_9
– 参考にしたサイト
https://note.nkmk.me/python-list-str-num-conversion/
– 振返り
リスト内の要素が数字の場合すぐにint型に変えたくなるが解説を見ると必要なときに都度int型に変更するのでもいいのかも。上記参考サイトはリスト内のstr型をint型に変更する単に参照しました。– 参考コード(文字列リストを数値型に変換)
“`python
a = [“1”, “2”, “3”]
int_a = [int(i) for i in a]
print(int_a)
#[1, 2, 3]
“`
【Python】RedmineチケットのカスタムフィールドにPythonからファイル添付する
PythonでRedmine APIを操作するための`python-redmine`モジュールを使用したファイルタイプのカスタムフィールド更新を説明したいと思います。
# 通常のカスタムフィールド更新方法
ファイルタイプの更新方法について説明する前に、通常のカスタムフィールドの更新方法をおさらいします。
`redminelib`はPythonでRedmine APIを使用するためのモジュールです。
`pip install python-redmine`でインストールできます。ざっくりとした流れは、以下です。
1. Redmineの接続情報(APIキーとURL)を指定
1. チケットIDを指定
1. カスタムフィールドIDを指定(分からない場合は、カスタムフィールド名から求める)
1. チケットIDとカスタムフィールドID・カスタムフィールドに設定する値を指定して、チケットを更新詳細はソースのコメントに書いています。
“`python:通常のカスタムフィールドの更新
from redminelib import Redmine# Redmine接続情報
##
【前編】Pythonでカンタン画像解析~タピオカはいくつ?~ を手直ししてみた
初投稿!
プログラム初心者なので、間違えてたらごめんなさい。
タイトルのサンプルコードが動いたのでメモがわりに(^ω^)
Pythonの画像処理をやってみようと思い、検索したらこちらの記事が目に入りました。
https://rightcode.co.jp/blog/information-technology/python-image-analysis-hsv-tapioca
画像解析初心者でしたのでサンプルコードをそのままコピーしたのですが・・・。そもそもコンパイルエラー(´;ω;`)
何が悪かったのか、他の記事も検索してみました。
すると、初心者の私でも分かりやすい記事が!
https://tech-blog.rakus.co.jp/entry/20201225/open-cv
(てか、画像解析触れたかっただけだから、これで終わりにすれば良かったなw)
この記事のサンプルコードをとりあえずコピー・・・(笑)
“`perl:Image_processing_Experience.py
import cv2filename = “tapioca_drink.
Pythonでマイクロサービスの作成
#準備
Python環境の用意→インストールは[こちら](https://www.python.org/downloads/)から
Flaskのインストール“`
$ pip install flask
“`
sqlachemyのインストール“`
$ pip install sqlachemy
“`
requestsのインストール“`
$ pip install requests
“`DBの用意(今回はSQLite3)
#実行環境
MacOS 11.4
Python 3.9.0
SQLite 3.32.3
requests 2.24.0
sqlachemy 1.4.26
Flask 2.0.2#webサーバーを立てる
今回は, ブラウザ上で選択したアイテムの値段を計算するwebサイトをマイクロサービスアーキテクチャもどきで作成する.
今回の機能としては以下の2つ
①dbに登録されている商品と値段を表示する
②選択した商品のみの表示“`main.py
import json
import osfrom flask import Flask,
Django の JWT クライアント
Django の JWT クライアントです。
Django のサーバーはこちらのものを使いました。
[ジャンゴ(django)でJWTを使う方法](https://dev-yakuza.posstree.com/django/jwt/)
[django-rest-framework-jwt](https://github.com/jpadilla/django-rest-framework-jwt/) を使っています。Django のバージョン
“`text
$ django-admin –version
3.1.4
“`#token を与えないでエラーが出ることを確認#
“`bash:go_check.sh
http http://localhost:8000/api/blog/posts/
“`実行結果
“`text
$ ./go_check.sh
HTTP/1.1 401 Unauthorized
Allow: GET, OPTIONS
Content-Length: 58
Content-Type: application/json
Date:
pythonで作る数当てゲーム
1~100のランダムな数字を当てるゲームです。
“`python:kazuate.py
import random
count = 1
answer = random.randint(1,100)while True:
number = input(‘1~100の間で数字を入力してください >> ‘)
if number.isdecimal():
number = int(number)
else:
print(‘間違った入力がされました。\n’
‘もう一度数字の入力をお願いします。’)
continueif answer == number:
print(f’正解です。正解は{answer}。’)
print(f'{count}回目のチャレンジで正解しました。’)
break
elif answer > number:
print(f’入力された数字は{number}。それより大きい数です。’
Python3エンジニア認定試験の勉強
#Pythonエンジニア認定試験
受けてみました。勉強時間は2日間(約10時間)。
CBTで、受験料は1万円。##筆者のスペック
転職ついでに2020年に2週間ほどかけて無料のPythonセミナーを受けるも、
ほぼ理解できなかった。クラスやpandas分析までやった記憶はあるが、
「printは覚えたぞ!」程度で終了。
それから1年半の間ほぼpython使わずにいたらさっぱり分からなくなった。
仕事で無理やり使ったりしていた程度。(以下参照)
※ファイルのコピーをコマンドではなくPythonを使ってみる
※SQLデータを敢えてPythonで出力してみる
※ネットに落ちてるコードをコピーして形態素解析してみる
※とりあえずProphetが動くようにしてみる##勉強方法
①過去問を解き続ける
②間違えたところをググる###①過去問を解き続ける
以下サイトに会員登録して、
・知らない問題が出てこなくなるまで
・950点以上になるまで
繰り返し解いた。
850点→650点→550点→750点→850点→950点
というような推移だった記憶がある。https://diver.di
インターネット接続にプロキシサーバ必須な環境にて、PythonのSMTPクライアントでGmailからメールを送る方法
#本記事の内容
– インターネット接続にプロキシサーバ利用が必須な環境において、Gmailからメールを送れるPythonアプリを実装します。メールプロトコルはSMTPです。Gmailのsmtpサーバを用いて、Pythonからメールを送りたかったのですが、
インターネット接続のためにプロキシサーバを経由させる必要がでたので、対応方法を調査してまとめました。例えば、企業内の内部ネットワークやクラウドにおける内部ネットワークからのメール送信等、インターネット接続にプロキシサーバ利用が必要となるプライベートなネットワーク環境でPythonアプリを動かすことを想定しています。
きっと状況としては、よくあるはず。何かの役に立てば幸いです。#実施環境
– Windows 10
– Visual Studio Code
– Python 3.8#手順の流れ
1. Googleアカウントでのアプリ認証用のパスワード発行
2. SMTPでプロキシ設定できるPythonライブラリのインストール
3. Pythonプログラムの作成と実行## 1. Googleアカウントでのアプリ認証用の
Windows で「有効なフォントファイルではありません」と表示される場合の対処法
# イントロダクション
フォント画像の描かれた SVG から、FontForge で Python Script を使用して ttf のフォントファイルを作成しました。
その際以下のアラートが出て、フォントを利用できないことがありました。![invalid_font_alert.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33738/99ad82bb-f75e-2ef1-7315-e42c1ac25915.png)
# ENV
– Windows10
– FontForge# 原因
! (半角ビックリマーク)が指定されていない。
## 解説
「!」は UTF-8 で U0021 という文字コードを割り当てられています。これは制御文字を除くと一番先頭の文字コードになるため、恐らく Windows ではフォントファイルの有効性を確認するアルゴリズムとして「!」の有無を見ているのだと思います。
ちなみに「!」に空白の画像を指定しても「有効なフォントファイルではありません」と出てプレビュ
pipenvをインストールする方法
①まずpythonを下記からダウンロード、インストールしておく
https://www.python.org/downloads/②get-pip.pyの取得
下記の Supported Methods >> get-pip.py に従ってget-pip.pyをダウンロードする
https://pip.pypa.io/en/stable/installation/③pipインストール
ダウンロードしたget-pip.pyに移動し、下記コマンドを実行“`python get-pip.py
④pipenvをインストール
下記コマンド実行“`pip3 install pipenv
※pip install pipenv ではcommand not found :pip と表示される。
理由は下記に記載されていました。
https://teratail.com/questions/269321
たった3時間で言語処理をする。~MeCabとWordCloudとGoogle Colabでサクッと簡単~
# Introduction
## きっかけ
最近はWebアプリ開発にかまけて、楽しい楽しい言語処理を疎かにしていたので、久々にさわってみたくなりました。言語処理といえば、、、MeCabですね。https://qiita.com/Senple/items/1ad08b1a7ac9560bef62
ただ現在はMac使いのボク(キリッ)ですが、米津玄師+WordCloudの記事当時は、WindowsによるMeCabの環境設定に大いに苦労しました。もうあんな思いはしたくないですし、時代はクラウドなので、クラウドでの環境設定に興味を持っていました[^1]。言語処理といっても、仰々しいことをやるのはしんどいので、簡単[^2]にWordCloudでの可視化と組み合わせてみました。
実際の作業は、思い立って画像をダウンロードするまで、3時間かかってないです[^3]。 簡単楽ちん♪## 結論
こんな感じのpngファイルが完成します。![sample_shirasujiro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw
じゃんけんゲーム
“`python:jyanken.py
import randomcount = 1
jyanken = [‘グー’, ‘チョキ’, ‘パー’]def kati():
print(‘———————————–‘)
print(‘あなたの勝ち’)
print(‘あなたは’ + jyanken[int_te] + ‘相手は’ + jyanken[aite])
print(f'{count}回目で勝負がつきました’)def make():
print(‘———————————–‘)
print(‘相手の勝ち’)
print(‘あなたは’ + jyanken[int_te] + ‘相手は’ + jyanken[aite])
print(f'{count}回目で勝負がつきました’)#最初に手を決める部分、グーは1、チョキは2、パーは3に変換
while True:
te = input(‘手を決めて下さい:グー
kivyMDチュートリアル其の什肆乃弍 Components – Layout篇
ハロー、Qiita!いかがお過ごしでしょうか。
はい、今週も相変わらずやっておりますが、元気にやっていきましょう。
今週は何といっても、月食についての話題がホッとではなかったでしょうか。私も外を
歩いているところで見かけましたが、あまりよく分からなかったですね。時間帯もあった
のでしょうが、肉眼では捉えにくかったです。みなさんはどうでしたでしょうか。今週のKivyMDですが、先週から伝えている通り今日でコンポーネンツが終了します。
長かったような短かったようなよく分からない気持ちでもありますね。。ですが、完全に
終わりといった訳でも無く、ポロポロ有効化されてないプロパティなどあってバージョン
アップをしないと挙動が変わっているか分からないものもあります。一覧は以下の通りです。* NavigationRail
* Snackbar
* FileManager
* (*Picker)
* (DataTables)バージョンアップ後にポロポロ出てきたものを検索すると、ざっと上記5つが浮上してきま
した。前半2つは検索して見てもらえれば、どんな意図しない挙動があるか見ることがで
PostgreSQL: テーブルの所有者を変更する (Python3)
PostgreSQL で複数のテーブルの所有者を変更する方法です。
Ubuntu 21.10 で確認しました。ライブラリーのインストール
“`bash
sudo apt install python3-dotenv
“`“`text:.env
user=’******’
password=’******’
data_base=’******’
“`“`py:change_owner.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# change_owner.py
# Nov/20/2021
#
# ——————————————————–
import os
import sys
import psycopg2
import psycopg2.extras
from dotenv import load_dotenv
#
# ——————————————————
AOJトライに関する知識知見の記録共有:Volume0-0044
# タスク概要
Prime Number IIhttps://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0044
# コード実装例
TIPS1. 例外処理含む評価パターンを追加
1. 入力値自体が素数にその旨出力
1. 出力数をパラメータ変数指定し調整可能に“`
import pprint, sys
import sympydef core(arg, n=3):
r = [arg] if sympy.isprime(arg) else []
return [sympy.prevprime(arg)] + r + [sympy.nextprime(arg, i) for i in range(1, n+1)]def app(*args):
ret = []
for arg in args:
try:
r = core(arg)
except Exception as e:
r = e
C# から Python へ JSON の受け渡し
C#からPythonへJSON文字列を送り、少し編集してC#側に戻すサンプル。
Pythonにあまり詳しくないC#経験者向けに書いています。# 環境
– Windows10 64bit
– Visual Studio 2022
– .Net6.0
– Newtonsoft.Json
– Python 3.6.8# C#側
標準入出力を介してやり取りする形になります。
“`c#:Program.cs
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Diagnostics;// Pythonファイルのパス
string pythonFile = “Program.py”;// Python側に渡すJSON
JObject inputJObj = JObject.Parse(@”{
‘CPU’: ‘Intel’,
‘Drives’: [
‘DVD read/writer’,
‘500 gigabyte hard drive’
]
}
“);var proce
Python ctypes 構造体 pragma pack (push,1)
本日はPythonのctypesに関する記事です。
実用的な内容ですので是非LGTM ストックお願いします ^__^## ctypesとは
C言語のデータ構造をPythonで扱うことができるライブラリです。
Pythonをインストールするときにこちらのライブラリは標準でインストールされます。Cの構造体をPythonでも扱いたいときなどに非常に便利です。
> [Python ctypes 公式ドキュメント](https://docs.python.org/ja/3/library/ctypes.html)
## 事例
今回紹介する例としては、
C側:構造体のデータをバイナリでログとして出力
Python:C側で吐き出されたバイナリのログデータを読み込んで表示PythonでCのログを解析することで2次利用(可視化や機械学習)が各段にしやすいのでマスターしたい技術です。
# pragma pack (push, 1)
C側では構造体を定義するとき、 pragma pack をよく利用します。
これをPythonで定義するためには、下記が必要なので忘れないでください。