ã¯ããã«
æ®æ®µã¯ç©æµãã©ãã¯ãã©ã€ããŒãããªããPythonåŠç¿ãããŠãã tosane932 ã§ãã
ååãããåãPythonåŠç¿ãå§ããåæããçŸåšé²è¡åœ¢ã§éçºãç¶ããŠããã
ð sales_data_app ð¥
ã®å®éã®ã³ãŒããææã«ãPythonåºç€ãåŠã³çŽããŠããŸãã
1æéç®ã§ã¯ã
倿°ã»ããŒã¿åã»æ¯èŒæŒç®åã»ifæ
ã«ã€ããŠåŠã³çŽããŸããã
äŸãã°ãå®éã®ååç»é²åŠçã«ããã
month = int(request.form.get("month"))
if month < 1 or month > 12:
return "æã¯1ãã12ã§æå®ããŠãã ããã", 400
ãšããã³ãŒãããã
倿°ã«å€ãå
¥ã
â
intåãšããŠæ±ã
â
< ã > ã§æ¯èŒãã
â
æ¯èŒçµæãTrue / Falseã«ãªã
â
ifæã§åŠçãåãã
ãšããæµãã確èªããŸããã
ä»åã¯ããããå°ãé²ãã§ã
è€æ°ã®ããŒã¿ãPythonã§ã¯ã©ããã£ãŠãŸãšããŠãé çªã«åŠçããŠããã®ãïŒ
ãèŠãŠãããŸãã
ðïž ä»åã®èšäºã3è¡ã§ãŸãšãããš
-
listã»dictã»setããããããäœã®ããã«äœ¿ãããŠããã®ããå®ã³ãŒãã§ç¢ºèªãã -
foræã§ãè€æ°ã®ååããŒã¿ã1ä»¶ãã€åŠçããæµãã远ã - 1æéç®ã§åŠãã
ifæã䜿ããªãããéè€ããååIDãé²ãä»çµã¿ãŸã§ã€ãªããŠèªã
ð¹ ä»åãã¢ã°ã©ãããšåŠã³çŽããŸã
ð¹ã1æéç®ã§ã¯ã倿°ãšãifæãå ¥å£ãŸã§æ»ã£ãŠå匷ããããã
ð¹ãã§ã sales_data_app ã«ã¯ååããã£ã±ããããâŠâŠ1åãã€å€æ°ãäœããããããªãããïŒã
ãããã«ã
product1 = "é£ãã³"
product2 = "ã¯ãã¯ããµã³"
product3 = "ã¡ãã³ãã³"
ãšãååãå¢ãããã³ã«å€æ°ãå¢ãããŠããã®ã¯å€§å€ã§ãã
å®éã®ããã°ã©ã ã§ã¯ã
è€æ°ã®ããŒã¿ããŸãšããŠæ±ãããããé çªã«åŠçãã
ããšããããããŸãã
ããã§ç»å Žããã®ããä»åã®ããŒãã§ãã
ð ããã§ã¯2æéç®
ä»åã®ããŒã
ããªã¹ãã»èŸæžã»setã»foræãšã¯ïŒã
1æéç®ã§ã¯ã
month = 9
username = "user_name"
password_matches = False
ã®ããã«ãäž»ã«1ã€ã®å€æ°ãš1ã€ã®å€ã«æ³šç®ããŸããã
ããããå®éã® sales_data_app ã§ã¯ååã1ã€ã ãæ±ã£ãŠããããã§ã¯ãããŸããã
ååç»é²ç»é¢ã§ã¯ã
é£ãã³
ã¯ãã¯ããµã³
ã¡ãã³ãã³
ããã±ã
...
ã®ããã«ãè€æ°ã®ååãæ±ããŸãã
ð¹ã1åã®å€ãªã倿°ã«å ¥ããã°ããã£ããã©âŠâŠååãäœåãããå Žåã¯ã©ããããã ïŒã
ããã§ä»åã¯ã
- ãªã¹ã
list - èŸæž
dict - éå
set -
foræ
ãèŠãŠãããŸãã
ð ä»ååŠã¶4ã€
-
ãªã¹ã
listïŒè€æ°ã®å€ããŸãšããŠæ±ã -
èŸæž
dictïŒããŒãšå€ãçµã¿åãããŠæ å ±ããŸãšãã -
éå
setïŒéè€ããªãå€ããŸãšããŠæ±ã -
foræïŒè€æ°ã®ããŒã¿ãé çªã«åŠçãã
ä»åã4ã€ãå¥ã ã«æèšããã®ã§ã¯ãªãã
è€æ°ã®ååããŒã¿ãåãåã
â
listãšããŠè€æ°ã®å€ãæ±ã
â
foræã§1ä»¶ãã€åãåºã
â
setãšifæã§ååIDã確èªãã
â
1ä»¶ã®ååæ
å ±ãdictã«ãŸãšãã
â
listãžè¿œå ãã
ãšãããå®éã®åŠçã®æµããšããŠèŠãŠãããŸãã
1. ðŠ ãªã¹ã list ãšã¯ïŒ
ãŸãã¯ãªã¹ãããèŠãŠãããŸãã
Pythonã§ã¯ãè€æ°ã®å€ããŸãšããŠæ±ãæ¹æ³ã®ã²ãšã€ãšã㊠list ããããŸãã
äŸãã°ã
breads = ["é£ãã³", "ã¯ãã¯ããµã³", "ã¡ãã³ãã³"]
ãšãããšã
é£ãã³
ã¯ãã¯ããµã³
ã¡ãã³ãã³
ãšãã3ã€ã®æååãã
breads
ãšãã1ã€ã®å€æ°ã§ãŸãšããŠæ±ããŸãã
ãªã¹ãã¯ã
[]
ãšããè§æ¬åŒ§ã䜿ã£ãŠè¡šããŸãã
ð sales_data_appã§ã¯ã©ãã§äœ¿ã£ãŠããïŒ
å®éã®ååç»é²åŠçãèŠãŠã¿ãŸãã
product_names = request.form.getlist("prod_name")
product_prices = request.form.getlist("prod_price")
product_ids = request.form.getlist("product_id")
ããã§ã¯ãååç»é²ç»é¢ããéãããŠããã
ååå
äŸ¡æ Œ
ååID
ããããããè€æ°ãŸãšããŠåãåã£ãŠããŸãã
request.form.getlist() ã¯Pythonãã®ãã®ã®æ©èœã§ã¯ãªããFlaskã§ãã©ãŒã ããè€æ°ã®å€ãååŸããããã«äœ¿ã£ãŠããåŠçã§ãã
ä»åã¯ã
product_names
product_prices
product_ids
ã«ãè€æ°ã®å€ããŸãšããŠå ¥ã£ãŠãã
ãšãããšããã«æ³šç®ããŸãã
äŸãã°ãååç»é²ç»é¢ã«3ã€ã®ååããã£ããšããŸãã
é£ãã³
ã¯ãã¯ããµã³
ã¡ãã³ãã³
ã€ã¡ãŒãžãšããŠã¯ã
product_names = [
"é£ãã³",
"ã¯ãã¯ããµã³",
"ã¡ãã³ãã³"
]
ã®ããã«ãè€æ°ã®åååããŸãšããŠæ±ãããšãã§ããŸãã
å³1ïŒååç»é²ç»é¢ã«ã¯è€æ°ã®åååãšäŸ¡æ Œã䞊ãã§ããŸããPythonåŽã§ã¯ããããã®è€æ°ããŒã¿ããŸãšããŠåãåããåŠçããŠãããŸãã
ðž ç»é¢ãšã³ãŒããã€ãªããŠã¿ã
ç»é¢ã§ã¯ã
åå1
åå2
åå3
ãšå¥ã ã®å ¥åæ¬ã«èŠããŸãã
ãããPythonåŽã§ã¯ãããããè€æ°ã®å€ãšããŠãŸãšããŠåãåãããšãã§ããŸãã
ååç»é²ç»é¢
é£ãã³
ã¯ãã¯ããµã³
ã¡ãã³ãã³
â
product_names
â
["é£ãã³", "ã¯ãã¯ããµã³", "ã¡ãã³ãã³"]
1æéç®ã§ã¯ã
username = ...
month = ...
ã®ããã«ãäž»ã«1ã€ã®å€ãèŠãŠããŸããã
ä»åã¯ã
è€æ°ã®å€ãã²ãšãŸãšãã«ããŠæ±ã
ãšãããžé²ãã ããã§ãã
空ã®ãªã¹ã []
ããäžã€ãå®éã®ã³ãŒããèŠãŠã¿ãŸãã
products_data = []
å³åŽã«ã
[]
ã ãããããŸãã
ããã¯ã
äžèº«ããŸã äœãå ¥ã£ãŠããªã空ã®ãªã¹ã
ã§ãã
products_data
â
[]
ð¹ã空ã£ãœãªããããããäœãå¿ èŠããã®ïŒã
ãã® products_data ã¯ãæåã¯ç©ºã§ããããã®ããšåŠçããååããŒã¿ãå°ããã€è¿œå ããŠããããã«çšæãããŠããŸãã
ã€ã¡ãŒãžãããšã
æå
products_data
[]
â
ååAãåŠç
â
products_data
[ååA]
â
ååBãåŠç
â
products_data
[ååA, ååB]
ãšããæãã§ãã
ð¡ 空ã®ãªã¹ããå ã«äœãçç±
products_data = []
ã®æç¹ã§ã¯äžèº«ã¯ãããŸããã
ãããããã®ããšååããŒã¿ãé çªã«è¿œå ããŠã
ãåŠçãçµãã£ãååããŸãšããŠæã£ãŠããå Žæã
ãšããŠäœ¿ããŸãã
ãã®ã远å ãã§äœ¿ãããã®ãããã®ããšç»å Žãã append() ã§ãã
ð¹ããªãã»ã©ãç©ºã®æ£ãå ã«çšæããŠãããšããååã䞊ã¹ãŠããæãããã
ãªã¹ãã«ã€ããŠã¯ãŸãã
è€æ°ã®å€ããŸãšããŠæ±ãã
ãšãããšãããæŒãããŠãããŸãã
2. ðïž èŸæž dict ãšã¯ïŒ
次ã¯èŸæžã§ãã
Pythonã§ã¯ã
{}
ã䜿ã£ãŠã
ããŒãšå€ãçµã¿åãããŠæ å ±ããŸãšãã
ããšãã§ããŸãã
äŸãã°ããã³1ååã®æ å ±ãèããŠã¿ãŸãã
bread = {
"name": "é£ãã³",
"price": 300
}
ããã§ã¯ã
"name" â "é£ãã³"
"price" â 300
ãšããåœ¢ã§æ å ±ããŸãšããŠããŸãã
ãã®ã
"name"
"price"
ã®éšåãããŒã
"é£ãã³"
300
ã®éšåãå€ãšåŒã³ãŸãã
ã㌠å€
name â é£ãã³
price â 300
èŸæžã®åã¯ã
dict
ã§ãã
ð ãªãååããŒã¿ã«èŸæžã䟿å©ãªã®ïŒ
åå1ä»¶ã«ã¯ãåååã ãã§ã¯ãªãã
ååID
ååå
äŸ¡æ Œ
ãªã©ãããã€ãã®æ å ±ããããŸãã
å³2ïŒååç»é²ç»é¢ã§ã¯ã1ã€ã®ååããšã«åååãšäŸ¡æ Œãã»ããã«ãªã£ãŠããŸããPythonåŽã§ã¯ãããã«ååIDãªã©ãå«ããŠ1ä»¶ã®ååæ å ±ãšããŠæ±ããŸãã
ãããã©ãã©ã«æ±ããšã
ååIDã¯ãã
åååã¯ãã
äŸ¡æ Œã¯ãã
ãšãããããã®é¢ä¿ãåããã«ãããªããŸãã
ããã§ã
{
"id": 1,
"name": "é£ãã³",
"price": 300
}
ã®ããã«ãŸãšããã°ã
ãããã¯1ã€ã®ååã«ã€ããŠã®æ å ±ã
ãšããŠæ±ãããããªããŸãã
ð¹ããªã¹ããè€æ°ã®ååã䞊ã¹ãæ£ãªããèŸæžã¯1åã®ååã«ã€ããæ å ±ã«ãŒãã¿ãããªæãããã
ãããªã€ã¡ãŒãžã§èŠããšåããããããã§ãã
å®éã®sales_data_appãèŠãŠã¿ã
sales_data_app ã§ã¯ãååç»é²åŠçã®äžã«æ¬¡ã®ã³ãŒãããããŸãã
if name.strip():
products_data.append({
"id": parsed_product_id,
"product": existing_product,
"name": name.strip(),
"price": int(price)
})
ããããåºãŠããŸããããäžåºŠåè§£ããŸãã
ä»åãŸã泚ç®ãããã®ã¯ã
{
"id": parsed_product_id,
"product": existing_product,
"name": name.strip(),
"price": int(price)
}
ã§ãã
ããã¯1ä»¶ã®ååã«ã€ããŠã
id
product
name
price
ãšãã4ã€ã®æ å ±ãã1ã€ã®èŸæžãšããŠãŸãšããŠããŸãã
ã€ã¡ãŒãžãšããŠã¯ã
1ä»¶ã®åå
id â ååID
product â æ¢åã®ååããŒã¿
name â ååå
price â äŸ¡æ Œ
ã§ãã
name.strip() ã int(price)ãexisting_product ã«ã€ããŠã¯ä»åã¯æ·±ãæããŸããã
ãŸãã¯ã
ã{} ã®äžã«ã1ä»¶ã®ååã«é¢ããæ
å ±ããŸãšããããŠããã
ãšããã«æ³šç®ããŸãã
ãªã¹ããšèŸæžãã€ãªãã£ã
ãããŠããã®èŸæžã®å€åŽãèŠããšã
products_data.append({
"id": parsed_product_id,
"product": existing_product,
"name": name.strip(),
"price": int(price)
})
ãšãªã£ãŠããŸãã
ããã§åºãŠããã
append()
ã¯ããªã¹ãã®æ«å°Ÿã«å€ã远å ãããšãã«äœ¿ããŸãã
ã€ãŸãã
products_data = []
ãšããŠæåã«ç©ºã®ãªã¹ããçšæãã
ãããžã
{
"id": ...,
"product": ...,
"name": ...,
"price": ...
}
ãšããåå1ä»¶åã®èŸæžã远å ããŠããŸãã
空ã®ãªã¹ã
products_data = []
â
ååAãèŸæžã«ãã
{
id,
product,
name,
price
}
â
append()
â
products_data
[
ååAã®èŸæž
]
ããã«æ¬¡ã®ååãåŠçãããã°ã
products_data
[
ååAã®èŸæž,
ååBã®èŸæž
]
ã®ããã«å¢ããŠãããŸãã
ð¡ ãªã¹ããšèŸæžã¯äžç·ã«äœ¿ãã
ä»åã®ã³ãŒãã§ã¯ã
ãªã¹ãã®äžã«èŸæžãå ¥ãã
ãšãã圢ã«ãªã£ãŠããŸãã
products_data
â
è€æ°ã®ååããŸãšãããªã¹ã
ãã®äžã®1ä»¶
â
ååæ
å ±ããŸãšããèŸæž
ã€ã¡ãŒãžãããšã
ãªã¹ã
ââ ååAã®èŸæž
ââ ååBã®èŸæž
ââ ååCã®èŸæž
ãšããæ§é ã§ãã
ð¹ããã£ã[] ãš {} ãåãã³ãŒãã®äžã«ããçç±ãå°ãåãã£ãŠãããã
[]
â
è€æ°ã®ååããŸãšãã
{}
â
1ä»¶ã®ååæ
å ±ããŸãšãã
䌌ãããã«ãããŒã¿ããŸãšãããã®ãã§ãã圹å²ãéãããã§ããã
3. 𧺠éå set ãšã¯ïŒ
ããã§ããŸãå¥ã®ãããŒã¿ããŸãšãããã®ããç»å ŽããŸãã
å®éã®ã³ãŒãã§ãã
seen_product_ids = set()
ð¹ãä»åºŠã¯ set()ïŒ [] ãš {} ã ãã§ããååãããªãã®ïŒã
åãããã¯ãæ¹ããŠåœ¹å²ãæŽçããŠãããããšããã§ãã
set ã¯æ¥æ¬èªã§ã¯éåãšåŒã°ããŸãã
倧ããªç¹åŸŽã®ã²ãšã€ãã
åãå€ãéè€ããŠæããªã
ããšã§ãã
äŸãã°ã
numbers = {1, 2, 3}
ã®ããã«å€ããŸãšããŠæ±ããŸãã
ä»åã¯ãsetã®äžã§ãç¹ã«ã
ããã§ã«ãã®å€ãå ¥ã£ãŠããã確èªããã
ãšããäœ¿ãæ¹ã«æ³šç®ããŸãã
空ã®set㯠set()
ããã§å°ã泚æã§ãã
ãªã¹ãã®ç©ºã£ãœã¯ã
[]
ã§ããã
ã§ã¯ç©ºã®setã¯ã
{}
ã§ããããïŒ
å®ã¯éããŸãã
{}
ã¯ç©ºã®èŸæžã§ãã
空ã®setãäœããšãã¯ã
set()
ãšæžããŸãã
[] â 空ã®list
{} â 空ã®dict
set() â 空ã®set
ð¹ãããã¯åèŠã ãšçµ¶å¯Ÿ {} ãsetã ãšæãããâŠâŠãã
èŠãç®ã䌌ãŠããã®ã§ãããã¯åããŠèŠããŠãããããšããã§ãã
ð sales_data_appã§ã¯äœã®ããã«äœ¿ã£ãŠããïŒ
倿°åãèŠããšå°ããã³ãããããŸãã
seen_product_ids = set()
seen_product_ids ã¯ã
ãã§ã«ç¢ºèªããååID
ãèŠããŠããããã®setã§ãã
ãã®ããšå®éã®ã³ãŒãã§ã¯ã
seen_product_ids.add(parsed_product_id)
ãšããŠã確èªããååIDãsetãžè¿œå ããŠããŸãã
äŸãã°ã
ååID 1ã確èª
â
seen_product_ids = {1}
ååID 2ã確èª
â
seen_product_ids = {1, 2}
ååID 3ã確èª
â
seen_product_ids = {1, 2, 3}
ãšããã€ã¡ãŒãžã§ãã
ð ããã§1æéç®ã®ifæãåç»å Ž
ãããŠãååIDãsetãžè¿œå ããåã«ããããªåŠçããããŸãã
if parsed_product_id in seen_product_ids:
logger.warning("Rejected product update with duplicate product ID.")
return "åãååãè€æ°åéä¿¡ãããŠããŸãã", 400
ð¹ããã£ãifïŒã
1æéç®ã§åŠãã æ¡ä»¶åå²ããããäžåºŠåºãŠããŸããã
ä»åã®æ¡ä»¶ã¯ã
parsed_product_id in seen_product_ids
ã§ãã
in ã¯ã
ãã®å€ãäžã«å«ãŸããŠãããïŒ
ã確èªãããšãã«äœ¿ããŸãã
äŸãã°ã
seen_product_ids = {1, 2, 3}
ã ã£ããšããŸãã
ããã§ã
2 in seen_product_ids
ãªãã
True
ã«ãªããŸãã
äžæ¹ã
5 in seen_product_ids
ãªãã
False
ã§ãã
åãååIDãããåºãŠããŠãããïŒ
äŸãã°ãæåã®ååã§ã
ååID = 10
ãåºãŠãããšããŸãã
確èªåŸã«setãžè¿œå ããã
seen_product_ids
â
{10}
ãšãªããŸãã
ãã®ããšãããäžåºŠã
ååID = 10
ãéãããŠãããšããŸãã
ãããšã
parsed_product_id in seen_product_ids
ã¯ã
10 in {10}
ãªã®ã§ã
True
ã«ãªããŸãã
ãã®çµæã
if parsed_product_id in seen_product_ids:
ã®äžãžå ¥ãã
return "åãååãè€æ°åéä¿¡ãããŠããŸãã", 400
ã«ãã£ãŠåŠçãæ¢ããŸãã
ååIDãåãåã
â
ãã§ã«setã«å
¥ã£ãŠããïŒ
â
No
â
setãžè¿œå
â
次ã®ååIDãåãåã
â
ãã§ã«setã«å
¥ã£ãŠããïŒ
â
Yes
â
ifæã®æ¡ä»¶ãTrue
â
HTTP 400
ð¡ 1æéç®ã®ifæãããäžåºŠäœ¿ã£ãŠã¿ã
1æéç®ã§ã¯ã
if month < 1 or month > 12:
ããã
æã1ã12ã®ç¯å²å€ãïŒ
ã確èªããŸããã
ä»åã¯ã
if parsed_product_id in seen_product_ids:
ããã
åãååIDããã§ã«åºãŠããŠããªããïŒ
ã確èªããŠããŸãã
æ¡ä»¶ã®å 容ã¯éããŸããã
æ¡ä»¶ã確èª
â
True / False
â
Trueãªãifæã®äžãž
ãšããåºæ¬ã®ä»çµã¿ã¯åãã§ãã
ð¹ããªãã»ã©ãifæã£ãŠ1åå匷ããŠçµãããããªããŠãæ¡ä»¶ãå€ããªããäœåºŠã䜿ããã ãã
ãããä»åãå®ã³ãŒãã§åŸ©ç¿ããŠæ°ã¥ãããšããã§ãã
4. ð foræãšã¯ïŒ
ãããŸã§ã
list
dict
set
ãšãã3çš®é¡ã®ããŒã¿ã®ãŸãšãæ¹ãèŠãŠããŸããã
ã§ããååã10ä»¶ãã£ãå Žåã
åå1ãåŠç
åå2ãåŠç
åå3ãåŠç
...
åå10ãåŠç
ãšãåããããªã³ãŒãã10åæžãã®ã¯å€§å€ã§ãã
å³3ïŒå£²äžå ¥åç»é¢ã«ãè€æ°ã®ååã䞊ãã§ããŸããç»é¢äžã§è€æ°ã®ååãæ±ãã€ã¡ãŒãžãšãããŒã¿ãé çªã«åŠçããforæã®èãæ¹ãã€ãªããŠã¿ãŸãã
ããã§äœ¿ãããã®ãã
for
ã§ãã
foræã¯ã
è€æ°ã®ããŒã¿ãé çªã«åãåºããŠãåŠçãç¹°ãè¿ã
ããã«äœ¿ããŸãã
äŸãã°ã
breads = ["é£ãã³", "ã¯ãã¯ããµã³", "ã¡ãã³ãã³"]
for bread in breads:
print(bread)
ãªãã
é£ãã³
ã¯ãã¯ããµã³
ã¡ãã³ãã³
ãé çªã«åãåºããŠåŠçããŸãã
ãªã¹ã
["é£ãã³", "ã¯ãã¯ããµã³", "ã¡ãã³ãã³"]
â
1åç®
bread = "é£ãã³"
â
2åç®
bread = "ã¯ãã¯ããµã³"
â
3åç®
bread = "ã¡ãã³ãã³"
ãšããã€ã¡ãŒãžã§ãã
ð sales_data_appã®foræãèŠãŠã¿ã
å®éã®ååç»é²åŠçã§ã¯ã
for product_id, name, price in zip(
product_ids,
product_names,
product_prices
):
ãšãªã£ãŠããŸãã
æ®éã®ã
for bread in breads:
ããå°ãè€éã§ããã
ð¹ãæ¥ã«3ã€ãåºãŠããâŠâŠãã
ä»åã¯ãŸãã
product_id
name
price
ãšãã3ã€ã®å€ãã
1ä»¶ã®ååãšããŠäžç·ã«åãåºããªããåŠçããŠãã
ãšèããŸãã
zip() ã¯äœãããŠããïŒ
ããã§ã
zip()
ãšãããã®ãåºãŠããŸãã
ä»åã®äž»åœ¹ã§ã¯ãããŸããããåŠçãèªãããã«å°ãã ã確èªããŸãã
äŸãã°ã
product_ids
[1, 2, 3]
product_names
["é£ãã³", "ã¯ãã¯ããµã³", "ã¡ãã³ãã³"]
product_prices
["300", "250", "200"]
ãšãã3ã€ã®ããŒã¿ããããšããŸãã
zip() ã䜿ãããšã§ã
1, "é£ãã³", "300"
2, "ã¯ãã¯ããµã³", "250"
3, "ã¡ãã³ãã³", "200"
ã®ããã«ã察å¿ããäœçœ®ã®å€ãäžç·ã«åãåºããŠããã€ã¡ãŒãžã§ãã
ãããŠã
for product_id, name, price in zip(
product_ids,
product_names,
product_prices
):
ã«ãã£ãŠã
1åç®
product_id = 1
name = "é£ãã³"
price = "300"
2åç®
product_id = 2
name = "ã¯ãã¯ããµã³"
price = "250"
3åç®
product_id = 3
name = "ã¡ãã³ãã³"
price = "200"
ãšãååã1ä»¶ãã€åŠçããŠãããŸãã
zip() ã«ã€ããŠã¯ä»åã¯ã
ãè€æ°ã®ããŒã¿ããã察å¿ããå€ããŸãšããŠé çªã«åãåºããŠããã
ãããã®çè§£ã«ããŠãããŸãã
ä»åã®äž»åœ¹ã¯ããããŸã§ç¹°ãè¿ãåŠçããã foræã§ãã
foræã®åã«ãifæããã
å®éã®ã³ãŒãã§ã¯ãforæãžå
¥ãåã«ã
if not (
len(product_ids) == len(product_names) == len(product_prices)
):
return "ååããŒã¿ã®ä»¶æ°ãäžèŽããŸããã", 400
ãšãã確èªãè¡ã£ãŠããŸãã
ããã¯ã
ååIDã®æ°
åååã®æ°
äŸ¡æ Œã®æ°
ãåãã確èªããŠããåŠçã§ãã
äŸãã°ã
ååID â 3ä»¶
ååå â 3ä»¶
äŸ¡æ Œ â 2ä»¶
ã®ããã«ä»¶æ°ãåã£ãŠããªããã°ããã®ãŸãŸåŠçãç¶ããŸããã
ããã§ã1æéç®ã§åŠãã ã
æ¯èŒ
â
True / False
â
ifæ
ãšããèãæ¹ã䜿ãããŠããŸãã
len() ã not ã«ã€ããŠã¯ä»åã®äžå¿ã§ã¯ãªããããããã§ã¯ã
ãforæã§åŠçãå§ããåã«ããããŒã¿ã«åé¡ããªãã確èªããŠããã
ãšãããšãããŸã§èŠãŠãããŸãã
foræã®äžã§ããããŸã§åŠãã ãã®ãåããŠãã
å®éã®ã³ãŒããããä»åèŠãéšåãäžå¿ã«æãåºããŠã¿ãŸãã
products_data = []
seen_product_ids = set()
for product_id, name, price in zip(
product_ids,
product_names,
product_prices
):
existing_product = None
if product_id:
parsed_product_id = int(product_id)
if parsed_product_id in seen_product_ids:
return "åãååãè€æ°åéä¿¡ãããŠããŸãã", 400
seen_product_ids.add(parsed_product_id)
else:
parsed_product_id = None
if name.strip():
products_data.append({
"id": parsed_product_id,
"product": existing_product,
"name": name.strip(),
"price": int(price)
})
â»å®éã®ã³ãŒããããä»åã®åŠç¿ç¯å²ã«é¢ä¿ããéšåãäžå¿ã«æãåºããäžéšã®åŠçãçç¥ããŠããŸãã
ãããŸã§åŠãã ãã®ãæ¢ããŠã¿ããšã
for
â
ååã1ä»¶ãã€ç¹°ãè¿ãåŠçãã
if
â
æ¡ä»¶ã«ãã£ãŠåŠçãåãã
set
â
ãã§ã«ç¢ºèªããååIDãèŠãã
dict
â
1ä»¶ã®ååæ
å ±ããŸãšãã
list
â
åŠçããååããŸãšãã
ãšãªããŸãã
ð¹ãåŸ ã£ãŠãä»åã®4ã€ã©ãããã1æéç®ã®ifæãŸã§åãå Žæã«ããããã
ãããªãã§ãã
ãããŸã§å¥ã ã«èŠãŠããPythonåºç€ãã
å®éã®ååç»é²åŠçã®äžã§äžç·ã«åããŠããŸãã
ð 4ã€ãã€ãªããŠããäžåºŠèŠã
ååç»é²åŠçããä»ååŠãã éšåã ãã«æ³šç®ããŠæµãã§èŠãŠã¿ãŸãã
åååã»äŸ¡æ Œã»ååIDãè€æ°åãåã
â
listãšããŠè€æ°ã®å€ãæ±ã
â
products_data = []
seen_product_ids = set()
â
foræã§ååã1ä»¶ãã€åŠç
â
ifæãšsetã§
åãååIDããã§ã«åºãŠããªãã確èª
â
1ä»¶ã®ååæ
å ±ãdictã«ãŸãšãã
â
append()ã§products_dataãžè¿œå
æåã¯ã
products_data.append({
...
})
ãã
for product_id, name, price in zip(...):
ãèŠãŠãã
äœãããŠãããã ããïŒ
ãšãªããããããŸããã
ã§ãäžã€ãã€åè§£ããŠãããšã
ãè€æ°ã®ååã1ä»¶ãã€åŠçããŠãéè€ã確èªããªãããååæ å ±ããŸãšããŠããã
ãšããæµããèŠããŠããŸããã
ð¹ããªãã»ã©âŠâŠãã
list
dict
set
for
if
ð¹ãææ³ã5åèŠãããšãããããååç»é²ã®æµããåè§£ããã5ååºãŠããæãã ããã
ãã®æèŠã¯ãä»åã®åŠã³çŽãã§å€§äºã«ããããšããã§ãã
ðž å®éã®ç»é¢ããããäžåºŠèãã
ååç»é²ç»é¢ã§ã¯ãå©çšè ããèŠããšã
åååãå
¥åãã
äŸ¡æ Œãå
¥åãã
ååã远å ãã
ãšããæäœã§ãã
ãããããã®è£åŽã®ååç»é²åŠçã§ã¯ã
è€æ°ã®ååããŒã¿ãåãåã
â
foræã§1ä»¶ãã€åŠç
â
ååIDãéè€ããŠããªããsetãšifã§ç¢ºèª
â
1ä»¶ã®ååæ
å ±ãdictã«ãŸãšãã
â
listãžè¿œå ãã
ãšããPythonã®åŠçã«ã€ãªãã£ãŠããŸãã
ç»é¢ã ããèŠãŠãããšã
ãååãç»é²ã§ããã
ãšããäžã€ã®æ©èœã«èŠããŸãã
ã§ãã³ãŒããåè§£ããŠã¿ããšããã®äžã«ã¯ä»ååŠãã Pythonã®åºç€ãããã€ã䜿ãããŠããŸããã
ð Guest Demoãå ¬éããŸãã
sales_data_app ã®Guest Demoãå
¬éããŸããã
çŸåšã¯ãã°ã€ã³ç»é¢ãã ãã²ã¹ããã¢ãäœéšããã ãéžã¶ããšã§ãã¢ã«ãŠã³ãç»é²ãªãã§å®éã®ååç»é²ç»é¢ãæäœã§ããŸãã
https://bakery-salesdata.onrender.com/
ä»åã®èšäºã§èŠãŠããPythonã®åºç€ããGuest Demoã®ååç»é²ç»é¢ã®è£åŽã§å®éã«äœ¿ãããŠããŸãã
äŸãã°ãç»é¢ããè€æ°ã®åååã»äŸ¡æ Œã»ååIDãéä¿¡ããããšãPythonåŽã§ã¯ã
product_names = request.form.getlist("prod_name")
product_prices = request.form.getlist("prod_price")
product_ids = request.form.getlist("product_id")
ãšããŠè€æ°ã®å€ãåãåããŸãã
ãã®ããšã
products_data = []
seen_product_ids = set()
for product_id, name, price in zip(
product_ids,
product_names,
product_prices
):
ã®ããã«ã
è€æ°ã®ååããŒã¿ãåãåã
â
listãšããŠæ±ã
â
foræã§1ä»¶ãã€åŠçãã
â
setã§ç¢ºèªæžã¿ã®ååIDãèŠãã
â
ifæã§éè€ã確èªãã
â
dictãšããŠ1ä»¶ã®ååæ
å ±ããŸãšãã
â
listãžè¿œå ãã
ãšããåŠçã«ã€ãªãã£ãŠããŸãã
ã€ãŸãä»ååŠãã ã
list
dict
set
foræ
ããç·Žç¿çšã®ãµã³ãã«ã³ãŒãã ãã§ã¯ãªããå®éã«æäœã§ããWebã¢ããªã®ååç»é²åŠçã§äœ¿ãããŠããŸãã
èšäºãèªã¿ãªããGuest Demoã®ååç»é²ç»é¢ãè§Šã£ãŠã¿ããšã
ãç»é¢ã§ã¯ååãå ¥åããŠããã ãã§ããè£åŽã§ã¯è€æ°ã®Pythonã®ä»çµã¿ãã€ãªãã£ãŠåããŠãããã ã
ãšãç»é¢ãšã³ãŒããçµã³ã€ããªãã確èªã§ããŸãð¹
ð 2æéç®ãŸãšã
ä»åãsales_data_app ã®ååç»é²åŠçãã4ã€ã®Pythonåºç€ãåŠã³çŽããŸããã
ãªã¹ã list
è€æ°ã®å€ããŸãšããŠæ±ãã
products_data = []
èŸæž dict
ããŒãšå€ãçµã¿åãããŠã1ä»¶åã®æ å ±ããŸãšããã
{
"name": "é£ãã³",
"price": 300
}
éå set
éè€ããªãå€ããŸãšããŠæ±ãã
seen_product_ids = set()
foræ
è€æ°ã®ããŒã¿ãé çªã«åŠçããã
for product_id, name, price in zip(
product_ids,
product_names,
product_prices
):
å®éã®ã³ãŒãã§ã¯ã
è€æ°ã®ååããŒã¿
â
foræã§1ä»¶ãã€åŠç
â
setã§ååIDã確èª
â
ifæã§éè€ãå€å®
â
dictã§ååæ
å ±ããŸãšãã
â
listãžè¿œå
ãšã€ãªãã£ãŠäœ¿ãããŠããŸãã
ããã«ä»åã¯ã1æéç®ã§åŠãã ifæ ãå¥ã®åœ¢ã§åç»å ŽããŸããã
äžåºŠå匷ããåºç€ããå¥ã®ã³ãŒãã®äžã§ãäœåºŠã䜿ãããŠãã
ããšã確èªã§ããŸããã
ð€ èªåã§ç¢ºèªããŠã¿ã
æåŸã«ãä»åã®å 容ãèªåã§ã確èªããŠã¿ãŸãã
Q1
次ã®ã³ãŒãã® [] ã¯äœã衚ããŠããã§ãããïŒ
products_data = []
ð °ïžçããèŠã
空ã®ãªã¹ãã§ãã
ãã®ããšååããŒã¿ã远å ããããã«ãæåã«ç©ºã®ãªã¹ããçšæããŠããŸãã
Q2
次ã®ããŒã¿ã¯äœåã§ãããïŒ
{
"name": "é£ãã³",
"price": 300
}
ð °ïžçããèŠã
dict
ã€ãŸãèŸæžã§ãã
name ã price ãããŒã§ã
é£ãã³
300
ãããããã®å€ã§ãã
Q3
ãªãã
seen_product_ids = set()
ã§ set ã䜿ã£ãŠããã®ã§ãããïŒ
ð °ïžçããèŠã
äžåºŠç¢ºèªããååIDãèŠããŠããã
åãååIDãããäžåºŠåºãŠããŠããªãã確èªãããã
ã§ãã
ä»åã®ã³ãŒãã§ã¯ã
if parsed_product_id in seen_product_ids:
ã«ãã£ãŠéè€ã確èªããŠããŸãã
Q4
次㮠foræã¯äœãããŠããã§ãããïŒ
for product_id, name, price in zip(
product_ids,
product_names,
product_prices
):
ð °ïžçããèŠã
ååIDã»åååã»äŸ¡æ Œã察å¿ãããªããåãåºãã
ååã1ä»¶ãã€ç¹°ãè¿ãåŠçããŠããŸãã
Q5
ãã§ã«ã
seen_product_ids = {10}
ãšãªã£ãŠããç¶æ
ã§ãããäžåºŠååID 10 ãæ¥ãå Žåã
10 in seen_product_ids
ã®çµæã¯ã©ããªãã§ãããïŒ
ð °ïžçããèŠã
True
ã«ãªããŸãã
ãã®ããã
if parsed_product_id in seen_product_ids:
ã®æ¡ä»¶ãæç«ãã
åãååãè€æ°åéä¿¡ãããŠããŸãã
ãšããŠåŠçãæ¢ããŸãã
Q6
空ã®èŸæžãšç©ºã®setã¯ãããããã©ãæžãã§ãããïŒ
ð °ïžçããèŠã
空ã®èŸæžã¯ã
{}
空ã®setã¯ã
set()
ã§ãã
èŠãç®ãçŽããããã®ã§ãããã¯åã埩ç¿ããŠãããããšããã§ãã
ð¹ 2æéç®ãçµããŠ
ä»åã¯ã
ãªã¹ãã»èŸæžã»setã»foræ
ãåŠã³çŽããŸããã
1æéç®ã§ã¯ã
1ã€ã®å€
â
æ¯èŒ
â
ifæã§æ¡ä»¶åå²
ãèŠãŸããã
ä»åã¯ããããäžæ©é²ãã§ã
è€æ°ã®å€
â
ãŸãšãã
â
1ä»¶ãã€åãåºã
â
æ¡ä»¶ã確èªãã
â
æ
å ±ãæŽçãã
ãšããåŠçã远ããŸããã
ãããŠé¢çœãã£ãã®ã¯ãæ°ããå 容ã ãã§çµãããªãã£ãããšã§ãã
1æéç®ã§åŠãã ã
if
ãã2æéç®ã®ååIDéè€ãã§ãã¯ã§ãæ®éã«äœ¿ãããŠããŸããã
æ°ããåºç€ãåŠã¶
â
以åã®åºç€ããŸãåºãŠãã
â
å¥ã®äœ¿ããæ¹ãèŠã
â
å°ããã€çè§£ãæ·±ãŸã
ãã®ç¹°ãè¿ãã§ãèªåã®äžã«ããæççãªPythonç¥èãã€ãªããŠãããããšæããŸãã
ð¹ã1æéç®ã§æã£ã穎ãã2æéç®ã®ç©Žã«ã€ãªãã£ãæãã ããã
ä»åãã宿ããã³ãŒããæèšããã®ã§ã¯ãªãã
ããã®ã³ãŒãã¯äœã®ããã«ããã«ããïŒã
ãèããªãããå®éã® sales_data_app ãèªã¿çŽãããšãã§ããŸããã
ãã¡ããã1åèšäºã«ãããããšãã£ãŠã
ãããçè§£ããã
ã§çµããã§ã¯ãããŸããã
ãŸãå®ã³ãŒãã®äžã§åºäŒã£ããšãã«ã
ããããã§ã䜿ã£ãŠãã
ãšæ°ã¥ããªãããäœåºŠã§ãåŠã³çŽããŠãããããšæããŸãã
ãŸã ãŸã åºç€ã®åŠã³çŽãã¯ç¶ããŸãã
æ¬¡ã®æéããð sales_data_app ã®å®ã³ãŒããææã«ããŠæã£ãŠãããŸãð¹
ðïž åºç€åŠç¿ã·ãªãŒãº
ð«1æéç®
ã倿°ã»ããŒã¿åã»æ¯èŒæŒç®åã»ifæãšã¯ïŒã
ð«2æéç®
ããªã¹ãã»èŸæžã»setã»foræãšã¯ïŒã
ð«3æéç®
ã颿°ã»åŒæ°ã»returnã»é¢æ°ã®åŒã³åºãã»åãã³ããšã¯ïŒã
ð«4æéç®
ãã¢ãžã¥ãŒã«ã»importã»äŸå€ã»tryã»exceptãšã¯ïŒã



