Friday, January 7, 2022
Turtle Art 7 өнгийн спираль
from turtle import *
col = ['red','orange','yellow','green','cyan','blue','lightpink']
bgcolor('black')
speed(0)
for i in range(200):
pencolor(col[i % 7]) # col лист дэх 7 өнгийг дараалан сонгоно.
width(i/100+1)
forward(i)
left(50) # 360/7=51.4 гэж гарч байгааг 50 гэж оруулбал хазгай тойрно.
hideturtle()
done()
Wednesday, January 5, 2022
Turtle дээр санамсаргүй зүгт, санамсаргүй зайд, санамсаргүй өнгөөр цацраг зурах
# санамсаргүй зүгт, санамсаргүй зайд, санамсаргүй өнгөөр цацраг зурах
import turtle
import random
wn = turtle.Screen()
wn.bgcolor('black')
col = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'lightpink']
t = turtle.Turtle()
t.pensize(1)
for i in range(100):
col_num = random.randint(0,6)
angle = random.randint(0,45)
dis = random.randint(50,200)
t.color(col[col_num])
t.right(angle)
t.forward(dis)
t.backward(dis)
Фрактал цасан ширхэг зурах код Turtle Art дээр
# Turtle Art дээр Фрактал цасан ширхэг зурах код
import turtle
def star(turtle, n,r):
for k in range(0,n):
turtle.pendown()
turtle.forward(r)
turtle.penup()
turtle.backward(r)
turtle.left(360/n)
def recursive_star(turtle, n, r, depth, f):
if depth == 0:
star(turtle, n, f*4)
else:
for k in range(0,n):
turtle.pendown()
turtle.forward(r)
recursive_star(turtle, n, f*r, depth - 1,f)
turtle.penup()
turtle.backward(r)
turtle.left(360/n)
turtle.speed("fastest")
s = turtle.Screen()
s.bgcolor('white')
recursive_star(turtle, 5 , 150, 4, 0.4)
Monday, January 3, 2022
Turtle Art Зүрхний цахилгаан бичлэгийг дуурайн зурав
Python орчинд Turtle Art зураг зурах хэд хэдэн жишээг энд оруулья.
Эхлээд консол дээрээ дараах команд бичиж Turtle Art сулгана.
C:> pip install turtle
Зүрхний цахилгаан бичлэгийн жишээ.
Saturday, December 11, 2021
Flask вэбийн жишээ
# pip install flask
# flask вэб ажиллуулах
from flask import Flask, render_template, request, redirect
import json
import random
import string
def get_random_string(length=3):
letters = string.ascii_lowercase
result_str = ''.join(random.choice(letters) for i in range(length))
return result_str
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def home():
if request.method == 'POST':
student_name = request.form['lastName']
print(f'student_name = {student_name}')
Student_Class = request.form['Class']
print(f'Student_Class = {Student_Class}')
student_dob = request.form['Student_DoB']
print(f'Student_DoB = {student_dob}')
grade = request.form['Grade']
print(f'Student_Grade = {grade}')
# суралцагч утга авах хэсэг
student = {
'index': get_random_string(),
'lastName': student_name,
'Class': Student_Class,
'Student_Dob': student_dob,
'Grade': grade
}
# print('student =', student)
students = read_info()['Students']
# print('students =', students)
students.append(student)
# print('students =', students)
teacher_fname = request.form['firstname']
print(f'teacher_fname = {teacher_fname}')
teacher_lname = request.form['lastname']
print(f'teacher_lname = {teacher_lname}')
teacher_dob = request.form['teacher_DoB']
print(f'teacher_dob = {teacher_dob}')
degree = request.form['Degree']
print(f'degree = {degree}')
experience = request.form['Experience']
print(f'experience = {experience}')
# багшийн мэдээлэл авах хэсэг
teacher = {
'index': get_random_string(),
'firstname': teacher_fname,
'lastname': teacher_lname,
'teacher_DoB': teacher_dob,
'Degree': degree,
'Experience': experience
}
# print('teacher =', teacher)
teachers = read_info()['Teachers']
# print('teachers =', teachers)
teachers.append(teacher)
# print('teachers =', teachers)
create_enrol(students, teachers)
return redirect('/')
else:
return render_template('index.html')
def create_enrol(student_info, teacher_info):
info = {
'Students': student_info,
'Teachers': teacher_info
} # тусдаа хоёр утгуудаа нэгтгэж байгаа хэсэг тэгээд нэг файлд Датабаз хийнэ
with open('db.txt', 'w') as db:
json.dump({'Information': info}, db)
def read_info():
with open('db.txt') as db:
data = json.load(db)
# print(f'data = {data}')
info_data = data['Information']
return info_data
@app.route('/list', methods=['GET'])
def info_list():
return render_template('list.html', information_list = read_info())
@app.route('/update/<index>', methods=['GET', 'POST'])
def info_update(index):
print('before index = ', index)
stu = get_info(index)
print('before info = ', stu)
if stu is None:
return redirect('/not-found')
if request.method == 'POST':
print("request.form['lastName'] =", request.form['lastName'])
print("request.form['Class'] =", request.form['Class'])
print("request.form['Student_Dob'] =", request.form['Student_Dob'])
print("request.form['Grade'] =", request.form['Grade'])
stu['lastName'] = request.form['lastName']
stu['Class'] = request.form['Class']
stu['Student_Dob'] = request.form['Student_Dob']
stu['Grade'] = request.form['Grade']
update_student(stu)
return redirect('/list')
else:
return render_template('update.html', stu = stu)
@app.route('/update_t/<index>', methods=['GET', 'POST'])
def info_update_t(index):
print('before index = ', index)
teacher = get_info_t(index)
print('before info = ', teacher)
if teacher is None:
return redirect('/not-found')
if request.method == 'POST':
print("request.form['lastname'] =", request.form['lastname'])
print("request.form['firstname'] =", request.form['firstname'])
print("request.form['teacher_DoB'] =", request.form['teacher_DoB'])
print("request.form['Degree'] =", request.form['Degree'])
print("request.form['lastname'] =", request.form['Experience'])
teacher['lastname'] = request.form['lastname']
teacher['firstname'] = request.form['firstname']
teacher['teacher_DoB'] = request.form['teacher_DoB']
teacher['Degree'] = request.form['Degree']
teacher['Experience'] = request.form['Experience']
update_teachers(teacher)
return redirect('/list')
else:
return render_template('update_t.html', teacher = teacher)
def get_info(get_par):
info_datas = read_info()
students = info_datas['Students']
index_s = []
for item in students:
if item['index'] == get_par:
index_s.append(item)
if len(index_s) > 0:
return index_s[0]
def get_info_t(get_par):
info_datas = read_info()
teachers = info_datas['Teachers']
index_s = []
for item in teachers:
if item['index'] == get_par:
index_s.append(item)
if len(index_s) > 0:
return index_s[0]
def update_student(up_Stu):
students = read_info()['Students']
teachers = read_info()['Teachers']
for item in students:
if item['index'] == up_Stu['index']:
item['lastName'] = up_Stu['lastName']
item['Student_Dob'] = up_Stu['Student_Dob']
item['Class'] = up_Stu['Class']
item['Grade'] = up_Stu['Grade']
break
info = {
'Students': students,
'Teachers': teachers
}
with open('db.txt', 'w') as db:
json.dump({'Information':info}, db)
def update_teachers(up_Teacher):
students = read_info()['Students']
teachers = read_info()['Teachers']
for item in teachers:
if item['index'] == up_Teacher['index']:
item['firstname'] = up_Teacher['firstname']
item['lastname'] = up_Teacher['lastname']
item['teacher_DoB'] = up_Teacher['teacher_DoB']
item['Degree'] = up_Teacher['Degree']
item['Experience'] = up_Teacher['Experience']
break
info = {
'Students': students,
'Teachers': teachers
}
with open('db.txt', 'w') as db:
json.dump({'Information':info}, db)
@app.route('/list/<index>', methods=['GET', 'POST']) # устгах хэсэг
def delete_info(index):
info_datas = read_info()
students = info_datas['Students']
teachers = info_datas['Teachers']
if index is None:
return redirect('/not-found')
# if request.method == 'POST':
index_s = []
for item in students:
index_s.append(item['index'])
index_t = []
for item in teachers:
index_t.append(item['index'])
print(index_s)
print(index_t)
if index in index_s:
student_index = index_s.index(index)
students.pop(student_index)
if index in index_t:
teacher_index = index_t.index(index)
teachers.pop(teacher_index)
info = {
'Students': students,
'Teachers': teachers
}
with open('db.txt', 'w') as db:
json.dump({'Information':info}, db)
return redirect('/list')
@app.route('/not-found')
def not_found():
return 'Хоосон байна, буцна уу!!!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=8080)
# тус flask код ажиллуулахын тулд хэд хэдэн файлийн систем байх болно.
#Тиймээс уг файлуудыг энд зип файлаар оруулья. Энд дарж татаж авна уу.
Excel файлийн нүднүүдэд утга оруулах
# consol дээр дараах код бичиж excel файлтай ажиллах боломжтой болно
# pip install openpyxl
# sample1.xlsx файл үүсгэж, уг файлаа хаасан байгаараай.
from openpyxl import Workbook
import random
book = Workbook()
sheet1 = book.active
num = 1000
n = 4
m = 1
for n1 in range(num):
var02 = random.randint(0, 10)
if m > 20:
m = 1
n += 1
sheet1.cell(row=m, column=n, value=var02)
m += 1
sheet1.cell(row=4, column=2, value="Hello World!")
sheet1['A2'] = 43
sheet1['B2'] = "Hi, Python"
book.save("sample1.xlsx")
# дээрх кодыг excel_write.py гэсэн нэрээр хадгалаад
# consol дээр
# d:/>python excel_write.py
# гэж ажлуулаад дараа нь sample1.xlsx файлаа нээж үзвэл дараах байдалтай харагдах болно.
Excel файлаас утга авах
#!/usr/bin/env python
# consol дээр дараах код бичиж excel файлтай ажиллах боломжтой болно
# pip install openpyxl
# sample.xlsx файл үүсгэж B1, B2, B3 нүдэнд юм бичсэн байх хэрэгтэй.
import openpyxl
book = openpyxl.load_workbook('sample.xlsx')
sheet1 = book.active
a1 = sheet1['B1'] #sample.xlsx файл доторх B1 нүдний утгыг авна
a2 = sheet1['B2'] #sample.xlsx файл доторх B2 нүдний утгыг авна
a3 = sheet1.cell(row=3, column=2) #B3 нүдний утгыг авна
print(a1.value)
print(a2.value)
print(a3.value)
Tuesday, July 20, 2021
tkinter Тооны машин хийх код
# Тооны машин хийх код
# https://www.studytonight.com/tkinter/calculator-application-using-tkinter
from tkinter import *
win = Tk() # Үндсэн цонхыг үүсгэнэ
win.geometry("312x324") # Цонхныхоо хэмжээг зааж өгнө
win.resizable(0, 0) # Уг цонхны хэмжээ өөрчлөгдөхөөс сэргийлнэ
win.title("Тооны машин")
################### Функц эхлэх хэсэг ####################
# 'btn_click' Функц :
# Энэ функц нь тооны машинд тоог оруулах бүрд
# тасралтгүй шинэчлэгдэх юм
def btn_click(item):
global expression
expression = expression + str(item)
input_text.set(expression)
# 'bt_clear' Функц : Энэ нь оролтын талбар дахь
# илэрхийллийг цэвэрлэх юм
def bt_clear():
global expression
expression = ""
input_text.set("")
# 'bt_equal': Энэ метод нь оролтын
# талбар дахь илэрхийлэлийг тооцоолно
def bt_equal():
global expression
result = str(eval(expression)) # 'eval': илэрхийллийн мөрийг үнэлэх функц юм.
input_text.set(result)
expression = ""
expression = ""
# 'StringVar()' : Оролтын талбар дахь утгыг авч хэрэглэх юм.
input_text = StringVar()
# Оролтын талбарын фрэйм үүсгэх хэсэг
input_frame = Frame(win, width=312, height=50, bd=0, highlightbackground="black", highlightcolor="black", highlightthickness=2)
input_frame.pack(side=TOP)
#Оролтын талбарын 'Frame' дотор талын тохиргоог хийх хэсэг
input_field = Entry(input_frame, font=('arial', 18, 'bold'), textvariable=input_text, width=50, bg="#eee", bd=0, justify=RIGHT)
input_field.grid(row=0, column=0)
input_field.pack(ipady=10) # 'ipady' нь оролтын талбарын дотор талаас өндрийн зай авах хэмжээг заана
#'Input_frame' доор байрлах товчлууруудын бусад 'Frame'-үүдээ бүтээе.
btns_frame = Frame(win, width=312, height=272.5, bg="grey")
btns_frame.pack()
# Эхний мөр
clear = Button(btns_frame, text = "C", fg = "black", width = 32, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: bt_clear()).grid(row = 0, column = 0, columnspan = 3, padx = 1, pady = 1)
divide = Button(btns_frame, text = "/", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("/")).grid(row = 0, column = 3, padx = 1, pady = 1)
# Хоёр дахь мөр
seven = Button(btns_frame, text = "7", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(7)).grid(row = 1, column = 0, padx = 1, pady = 1)
eight = Button(btns_frame, text = "8", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(8)).grid(row = 1, column = 1, padx = 1, pady = 1)
nine = Button(btns_frame, text = "9", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(9)).grid(row = 1, column = 2, padx = 1, pady = 1)
multiply = Button(btns_frame, text = "*", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("*")).grid(row = 1, column = 3, padx = 1, pady = 1)
# Гурав дахь мөр
four = Button(btns_frame, text = "4", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(4)).grid(row = 2, column = 0, padx = 1, pady = 1)
five = Button(btns_frame, text = "5", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(5)).grid(row = 2, column = 1, padx = 1, pady = 1)
six = Button(btns_frame, text = "6", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(6)).grid(row = 2, column = 2, padx = 1, pady = 1)
minus = Button(btns_frame, text = "-", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("-")).grid(row = 2, column = 3, padx = 1, pady = 1)
# Дөрөв дэх мөр
one = Button(btns_frame, text = "1", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(1)).grid(row = 3, column = 0, padx = 1, pady = 1)
two = Button(btns_frame, text = "2", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(2)).grid(row = 3, column = 1, padx = 1, pady = 1)
three = Button(btns_frame, text = "3", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(3)).grid(row = 3, column = 2, padx = 1, pady = 1)
plus = Button(btns_frame, text = "+", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click("+")).grid(row = 3, column = 3, padx = 1, pady = 1)
# Дөрөв дэх мөр
zero = Button(btns_frame, text = "0", fg = "black", width = 21, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(0)).grid(row = 4, column = 0, columnspan = 2, padx = 1, pady = 1)
point = Button(btns_frame, text = ".", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click(".")).grid(row = 4, column = 2, padx = 1, pady = 1)
equals = Button(btns_frame, text = "=", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: bt_equal()).grid(row = 4, column = 3, padx = 1, pady = 1)
win.mainloop()
Subscribe to:
Posts (Atom)
