لیست ها و چند تایی ها:

موضوع این جلسه از اموزش برنامه نویسی با پایتون هست: Lists and Tuples.
لیست ها قسمتی بسیار کاربی در برنامه نویسی اند.در حقیقت یک لیست همون متغییره که فقط می تونه بیشتر از یک مقدار داشته باشه و قابلیت تغییر هم داره.
چند تایی لیستیه که تغییر ناپذیره!،هر دوی اینها هم می تونن اعداد و حروف یا هر متغییر دیگه رو در خودشون داشته باشن.
mylist = [1, "hi", 2, "what's", 3, "up"]
یا شبیه به این:
my list = 1, "hi", 2, "what's", 3, "up"
اما برای خروجی گرفتن از لیست ها کافیه همون کاری رو بکنیم که برای سایر متغییر ها انجام می دادیم:
Print my list
اما بیاید کاری کنیم که فقط یکی از متغییر های داخل لیست چاپ بشه:
هر کدوم از متغییر ها توی لیست با یه عددی مشخص می شن،که اولی شمارش 0 و بقیه هم همینطور رو به بالا....
print mylist[1]
درضمن ما می تونیم یه متغییر دیگه رو به یکی از ابجکتهای داخل لیست هم نسبت بدیم......مثل مثال زیر:
x = mylist[1] 
print x
این مثال یه برنامس که به کاربر اجازه انتخاب یکی از گزینه های داخل لیست رو می ده.....

names = ["maysam", "hamed", "hasan", "reza", "ali", "javad", "sara"]
option = 0 #declare our input variable

while option != 99: #have the program run until user enters 99
option = input("Please enter a number between 0 and %d to quit enter 99:" %(len(names)-1))
if 0 <= option < len(names):

print names[option] #print the name
elif option == 99: #If option is 99 break out of if statement
quit
else:
print "That is not a valid option!" #If option is anything else, tell user
خوب توی این برنامه چند تا چیز هست که هیچوقت راجع بهشون نگفته بودیم...
کانون کد های من توی این برنامه تابع len() است . این تابع طول یا تعداد لیست ما رو برمی گردونه.
حتمی %d رو هم در خطی که مربوط به دستورات ورودی هستش رو هم ندیدید!این یه راه دیگه برای گرفتن مقدار متغییره.
print "number is %d" %23 یه نوع استفاده و کاربردشه....این عدد 23رو توی رشته قرار میده.
توی همین خط و جایی که گفتم len(names)-1 این کار بخاطر اینه که همیشه طول لیست همیشه 1 بار بیشتر ازعددیه که به متغییر قبلی نسبت داده شده بود.اگرچه درصورت بکار بردنتابع range() هم هیچ مشکلی پیش نمی اومد..



names = ["maysam", "hamed", "hasan", "reza", "ali", "javad", "sara"]
for x in range(len(names)):
print names[x]
حالا اگه بخوایم مقدار یکی از این گزینه های لیست رو عوض کنیم چیکار می کنیم؟
names[3] = "negar"
همینطور اگر بخوایم که یک اسم رو به این لیست اضافله کنیم از تابع زیر استفاده می کنیم:
names.append("nazanin")
و همینطور برای حذف کردن یکی از این اسم ها از تابع زیر استفاده می شه:
names.remove("reza")



خوب تا اینجا چیزای خیلی زیادی رو یاد گرفتید و بیاین با هم یه پروژه رو انجام بدیم:



def menu():
print "\n\n\n1. List all employees"
print "2. Add employee"
print "3. Delete employee"
print "4. Number of employees"
print "0. Quit\n\n\n"

def list_employees(list):
for x in range(len(employees)):
print "%d." %(x+1), employees[x]

def add_employee(list):
addit = raw_input("Employee's name? ")
list.append(addit)
return list

def del_employee(list):
delit = raw_input("What employee do you want to delete? ")
if delit in list:
list.remove(delit)
print delit, "deleted!"
else:
print "That employee is not in the database."
return list

option = 1
employees = ["maysam rasheidi", "nazanin kian", "negar kian"]
x = 0

while option != 0:
menu()
option = input("Please pick an option: ")
print "\n\n\n"
if option == 1:
list_employees(employees)


elif option == 2:
employees = add_employee(employees)
elif option == 3:
employees = del_employee(employees)
elif option == 4:
x = len(employees)
print "There are", x, "employees."
elif option == 0:
quit
else:
print "That is not a valid option"

خوب ممکنه برنامه یه خورده حجمش بالا باشه یا اینکه سنگین باشه!!!
ولی شما نوشتن یه برنامه خوب رو یاد گرفتید....این جور برنامه ها رو می تونید ازشون استفاده های خیلی خوبی بکنید مثلا برای نوشتن یه دیکشنری یا یه همچین چیزی که شما بتونید بهش چیزی رو اضافه کنید یا جست و جو کنید.....
البته هنوز برای نوشتن یه دیکشنری خوب خیلی راه دارید ولی این برنامه بالا یه برنامه خیلی خوبه که اگه بتونید نمونه هاش رو خودتون بنویسید خیلی عالیه....
تمرین:
اگه بتونین این تمرین رو انجام بدید یعنی تمام چیزایی رو که بهتون گفتم رو یاد گرفتید(این برای تست یادگیری خودتونه و ملزم به انجامش نیستید!!!!)
-می تونید یه کاونتر (شمارنده؟!)بنویسید که بتونه با استفاده از لیست ها از 1 تا 10 رو چاپ کنه؟
می تونید جواب هاتون رو در ادامه ی همین تاپیک ارسال کنید....

این اموزش هنوز تموم نشده و فقط 2 درس دیگه مونده که احتمالا می اوفته بعد از این ماه چون امتحانات خرداد شروع شده و منم باید برم پی درس خوندن
با تشکر(senaps.co.cc)