Python 쇼핑 몰 구현,사용자 입구 와 업 체 입구 예시 포함
사용자 입 구 는 다음 과 같은 기능 을 가지 고 있 습 니 다.
로그 인 인증
사용자 잠 금 가능
비밀번호 입력 횟수 3 회 이상,사용자 이름 잠 금
세 번 연속 오류 사용자 이름 종료
직접 구 매 를 선택 할 수도 있 고 카 트 가입 을 선택 할 수도 있 습 니 다.
사용자 가 결제 비밀 번 호 를 사용 하여 결 제 를 완료 하고 결제 비밀 번 호 를 연속 으로 입력 하 는 오류 가 3 번 에 달 하 며 사용자 이름 을 잠 금 합 니 다.
업 체 의 입 구 는 다음 과 같은 기능 을 가진다.
로그 인 인증
사용자 잠 금 가능
비밀번호 입력 횟수 3 회 이상,사용자 이름 잠 금
세 번 연속 오류 사용자 이름 종료
상인 은 상품 을 편집 할 수 있다
신제품 을 출시 하 다.
상품
상품 정보 수정:상품 명,단가,재고
모든 사용자 의 사용자 이름,비밀번호,잔액,지불 비밀 번 호 는 줄 기록 으로 user 에 정의 합 니 다.list.txt 파일 에서 쉼표 로 구분 하기;
각 상품 의 상품 명,단가,재고,행 기록 으로 produtlist.txt 파일 에 쉼표 로 빈 칸 구분 하기;
잠 긴 사용자 이름 을 lock 에 기록 합 니 다.list.txt 파일 에서 줄 로 구분 하기;
업 체 의 사용자 이름,비밀 번 호 는 seller 에 정의 되 어 있 습 니 다.list.txt 파일 에서 쉼표 로 구분 하기;
# Joe Young
import getpass
import os
# os system 'cls' ,
os.system('cls')
while True:
entrance = input(' :
\t1.
\t2.
>>>')
if entrance != '1' and entrance != '2':
print('
, ...
')
else:
break
#
def print_product_list():
index = 1
with open('product_list.txt', 'r') as product_file:
for product_line in product_file:
L = [commodity, price, stock] = product_line.strip('
').split(', ')
commodity_list.append(L)
print((str(index) + '. ' + commodity).ljust(20) + (' :' + price + ' ').ljust(15) + ' :' + stock)
index += 1
return
#
if entrance == '1':
info = [] # ,
if_payed = True # if_payed
username = ''
#
count = 0
while count < 3:
username = input('
: ')
#
with open('lock_list.txt', 'r+') as lock_file:
for lock_line in lock_file:
# ,
if username == lock_line.strip('
'):
exit('
%s , ...' % username)
login = False # , False
# ,
user_file = open('user_list.txt', 'r')
for user_line in user_file:
# , 、 、 、 , info
info = [user, passwd, balance, pay_passwd] = user_line.strip('
').split(',')
# ,
if user == username:
n = 0
# 3
while n < 3:
password = getpass.getpass(' : ')
# ,
if passwd == password:
print('
%s , !
' % username)
login = True # True
break
#
else:
# n = 2 , 0
if n != 2:
print('
, , %d
' % (2-n))
n += 1
# 3 , ,
else:
open('lock_list.txt', 'w').write(username + '
')
exit('
, ...')
# , for
if login:
break
else:
if count != 2:
print('
, , %d ' % (2-count))
user_file.close()
count += 1
# , while
if login:
break
else:
exit('
, ...')
#
shopping_cart = [] #
commodity_list = []
print_product_list()
while True:
i = input('
( ), c :')
if i == 'c':
while True:
a = input('
?(Y/N):')
if a == 'n' or a == 'N':
exit('
...')
elif a == 'y' or a == 'Y':
break
else:
print('
, ...')
continue
if not i.isdigit():
print('
, ...')
continue
i = int(i)
if i <= 0 or i > len(commodity_list):
print('
, ...')
continue
item_name = commodity_list[i-1][0] #
item_price = commodity_list[i-1][1] #
item_stock = commodity_list[i-1][2] #
print('
%s , , b :' % item_name)
back = False
while True:
num = input('>>>')
if num == 'b':
back = True
break
if not num.isdigit():
print(' , ...')
continue
if int(num) > int(item_stock):
print(' , ...')
continue
if int(num) == 0:
print(' 0, ...')
break
if back:
continue
item = [item_name, item_price, num]
print('
%s, :%s , :%s, ?
' % (item_name, item_price, num))
print('\t1.
\t2.
')
while True:
choice = input('>>>')
if not (choice == '1' or choice == '2'):
print(' , ...')
continue
break
user_balance = int(info[2])
#
if choice == '1':
amount = int(item_price) * int(num)
count = 0
cancel = False
while count < 3:
user_pay_passwd = getpass.getpass('
, c :')
if user_pay_passwd == 'c':
print('
...')
cancel = True
break
elif user_pay_passwd != info[3]:
if count != 2:
print('
, , %d ...' % (2-count))
count += 1
else:
break
if count == 3:
with open('lock_list.txt', 'w') as lock_file:
lock_file.write(username + '
')
exit(' , ...')
if cancel:
while True:
choice = input('
?(Y/N):')
if not (choice == 'Y' or choice == 'y' or choice == 'N' or choice == 'n'):
print('
, ...')
continue
break
if choice == 'Y' or choice == 'y':
continue
else:
break
#
if user_balance >= amount:
user_balance -= amount
print('
! %s , :%s , :%s, :%s , :%s '
% (item_name, item_price, num, amount, user_balance))
lines = open('product_list.txt', 'r').readlines()
# , select
select = lines[i-1].strip('
').split(', ')
#
select[-1] = (str(int(select[-1]) - int(num)) + '
')
#
lines[i-1] = ', '.join(select)
#
open('product_list.txt', 'w').writelines(lines)
lines = open('user_list.txt', 'r').readlines()
#
for line in lines:
if username in line.split(','): #
j = lines.index(line) #
select = line.split(',') # select
select[-2] = str(user_balance) #
lines[j] = ','.join(select) # ,
open('user_list.txt', 'w').writelines(lines) #
else:
print('
, ...')
else: #
j = 0
for j in range(len(shopping_cart)):
# ,
if item_name in shopping_cart[j]:
shopping_cart[j][2] = str(int(shopping_cart[j][2]) + int(num))
break
# ,
else:
shopping_cart.append(item)
print('
!')
while True:
choice = input('
?(Y/N):')
if not (choice == 'Y' or choice == 'y' or choice == 'N' or choice == 'n'):
print('
, ...')
continue
break
if choice == 'Y' or choice == 'y':
continue
else:
break
#
if shopping_cart:
print('
:
')
i = 1
total_sum = 0
for item in shopping_cart:
(commodity, price, number) = (item[0], item[1], item[2])
print((str(i) + '. ' + commodity).ljust(20) + (' :' + price + ' ').ljust(15) + ' :' + number)
total_sum += int(price) * int(number)
i += 1
print('
:%d ' % total_sum)
while True:
if_buy = input('
?(Y/N):')
if not (if_buy == 'Y' or if_buy == 'y' or if_buy == 'N' or if_buy == 'n'):
print('
, ...')
continue
break
while True:
#
if if_buy == 'Y' or if_buy == 'y':
count = 0
cancel = False
while count < 3:
user_pay_passwd = getpass.getpass('
, c :')
if user_pay_passwd == 'c':
print('
...')
cancel = True
break
elif user_pay_passwd != info[3]:
if count != 2:
print('
, , %d ...' % (2-count))
count += 1
else:
break
if cancel:
if_payed = False
elif count == 3:
with open('lock_list.txt', 'w') as lock_file:
lock_file.write(username + '
')
exit('
, ...')
else:
if total_sum <= user_balance:
user_balance -= total_sum
print('
! :
')
i = 1
for item in shopping_cart:
(commodity, price, number) = (item[0], item[1], item[2])
print((str(i) + '. ' + commodity).ljust(20) +
(' :' + price + ' ').ljust(15) + ' :' + number)
lines = open('product_list.txt', 'r').readlines()
for line in lines: #
if commodity in line.split(', '): #
j = lines.index(line) #
select = line.split(', ') #
select[-1] = (str(int(select[-1]) - int(number)) + '
') #
lines[j] = ', '.join(select) #
open('product_list.txt', 'w').writelines(lines) #
i += 1
lines = open('user_list.txt', 'r').readlines()
for line in lines: #
if username in line.split(','):
j = lines.index(line)
select = line.split(',')
select[-2] = str(user_balance)
lines[j] = ','.join(select)
open('user_list.txt', 'w').writelines(lines)
exit('
:%d , :%d ' % (total_sum, user_balance))
#
else:
print('
...')
while True:
choice = input('
?(Y/N):')
if not (choice == 'Y' or choice == 'y' or choice == 'N' or choice == 'n'):
print('
, ...')
continue
break
if choice == 'n' or choice == 'N':
exit('
, , ...')
else:
if_buy = 'Y'
continue
if not if_payed:
print('
...')
while True:
choice = input('
?(Y/N):')
if not (choice == 'Y' or choice == 'y' or choice == 'N' or choice == 'n'):
print('
, ...')
continue
break
if choice == 'n' or choice == 'N':
exit('
, , ...')
else:
if_buy = 'Y'
continue
#
if entrance == '2':
seller_name = ''
#
count = 0
while count < 3:
seller_name = input('
:')
with open('lock_list.txt', 'r') as lock_file:
for lock_line in lock_file:
if seller_name == lock_line.strip('
'):
exit('
%s , ...' % seller_name)
seller_file = open('seller_list.txt', 'r')
login = False
for seller_line in seller_file:
(seller, passwd) = seller_line.strip('
').split(',')
if seller_name == seller:
n = 0
while n < 3:
password = getpass.getpass(' :')
# , while
if password == passwd:
print('
%s ' % seller_name)
login = True
break
else:
if n != 2:
print('
, , %d ' % (2-n))
n += 1
# n = 3,
else:
open('lock_list.txt', 'w').write(seller_name + '
')
exit('
, ...')
# , for
if login:
break
#
else:
if count != 2:
print('
, , %d ' % (2-count))
# , while
if login:
break
count += 1
else:
exit('
, ...')
#
L = []
# ,
commodity_list = []
index = 1
print('
:
')
print_product_list()
while True:
choice = input('
?(Y/N):')
if not (choice == 'Y' or choice == 'y' or choice == 'N' or choice == 'n'):
print('
, ...')
continue
break
if choice == 'Y' or choice == 'y':
while True:
print('
( q ):
')
print('1.
2.
3. ')
choice = input('
>>>')
if not (choice == '1' or choice == '2' or choice == '3' or choice == 'q'):
print(' , ...')
continue
#
if choice == '1':
while True:
if_add = False # , False
new_commodity = input('
:')
product_file = open('product_list.txt', 'r')
for product_line in product_file:
commodity = product_line.strip('
').split(', ')[0] #
if new_commodity == commodity:
print('
...')
continue
else:
while True:
if_sure = input('
%s ?(Y/N):' % new_commodity)
if not (if_sure == 'Y' or if_sure == 'y' or if_sure == 'N' or if_sure == 'n'):
print('
, ...')
continue
break
#
if if_sure == 'Y' or if_sure == 'y':
while True: #
price = input('
:')
if not price.isdigit():
print('
, ...')
continue
break
while True: #
stock = input('
:')
if not stock.isdigit():
print('
, ...')
continue
break
new_line = '
' + new_commodity + ', ' + price + ', ' + stock
open('product_list.txt', 'a').writelines(new_line)
print('
%s , %s , %s ' % (new_commodity, price, stock))
while True:
option = input('
?(Y/N):')
if not (option == 'Y' or option or option == 'N' or option == 'n'):
print('
, ...')
continue
break
if option == 'Y' or option == 'y':
if_add = True
break # for
else:
break
#
else:
if_add = False
break # for
product_file.close()
if if_add is True:
continue
else:
break # while
#
elif choice == '2':
while True:
del_num = input('
:')
if not (del_num.isdigit() or int(del_num) > 0 and int(del_num) <= len(commodity_list)):
print('
, ...')
continue
break
del_num = int(del_num)
del_commodity = commodity_list[del_num - 1][0]
with open('product_list.txt', 'r') as old_file:
with open('product_list.txt', 'r+') as new_file:
current_line = 0
#
while current_line < (del_num - 1):
old_file.readline()
current_line += 1
# ,
seek_point = old_file.tell()
#
new_file.seek(seek_point, 0)
# ,
old_file.readline()
# next_line
next_line = old_file.readline()
# ,
while next_line:
new_file.write(next_line)
next_line = old_file.readline()
# , , ,
new_file.truncate()
print('
%s !' % del_commodity)
#
elif choice == '3':
#
def mod_commodity_info(i, j):
i = int(i)
j = int(j)
with open('product_list.txt', 'r+') as f:
current_line = 0
while current_line < i - 1:
f.readline()
current_line += 1
seek_point = f.tell()
f.seek(seek_point, 0)
#
if j == 1:
update_line = mod_name() + ', ' + commodity_list[i-1][1] + ', ' + commodity_list[i-1][2] + '
'
#
elif j == 2:
update_line = commodity_list[i-1][0] + ', ' + mod_price() + ', ' + commodity_list[i-1][2] + '
'
#
else:
update_line = commodity_list[i-1][0] + ', ' + commodity_list[i-1][1] + ', ' + mod_stock() + '
'
f.write(update_line)
return
def mod_name():
new_name = input("
:")
return new_name
def mod_price():
new_price = input("
:")
return new_price
def mod_stock():
new_stock = input("
:")
return new_stock
#
def mod_commodity_price(i):
i = int(i)
with open('product_list.txt', 'r+') as f:
current_line = 0
while current_line < i -1:
f.readline()
current_line += 1
seek_point = f.tell()
f.seek(seek_point, 0)
new_price = input()
while True:
i = input("
( c ):")
if not (i.isdigit or i == 'c' or int(i) > 0 and int(i) <= len(commodity_list)):
print("
, ...")
continue
elif i == 'c':
break
else:
while True:
j = input("
( c ):
1.
2.
3.
>>>")
if not (j == 'c' or j == '1' or j == '2' or j == '3'):
print("
, ...")
continue
break
if j == 'c':
break
else:
mod_commodity_info(i, j)
else:
exit('
...')
else:
exit('
...')
이상 파 이 썬 은 쇼핑 몰 을 실현 합 니 다.사용자 입구 와 업 체 입 구 를 포함 한 예 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 가 되 고 많은 사랑 을 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.