Python 初學(xué)者進(jìn)階的九大技能

初學(xué)者與中級(jí)程序員
解決問題和提出問題;
XY問題;
理解代碼為何起作用(或不起作用);
使用字符串;
使用列表;
使用循環(huán);
使用函數(shù)(并正確談?wù)摵瘮?shù));
面向?qū)ο缶幊蹋?/span>
尊重PEP。
?1.解決問題和提出問題:
def?extract_ext(filename):
????return?filename[-3:]
print?(extract_ext('photo_of_sasquatch.png'))
>>>?png

def?extract_ext(filename):
????return?filename.split('.')[-1]
print?(extract_ext('photo_of_sasquatch.png'))
print?(extract_ext('photo_of_lochness.jpeg'))
>>>?png
>>>?jpeg


word?=?'supergreat'
print?(f'{word[0]}')?
>>>?s
print?(f'{word[0:5]}')
>>>?super


filenames?=?['lochness.png'?,?'e.t.jpeg'?,?'conspiracy_theories_CONFIRMED.zip']
#?1:?Using?ENDSWITH
for?files?in?filenames:
????if?files.endswith('zip'):
????????print(f'{files}?is?a?zip?file')
????else:
????????print?(f'{files}?is?NOT?a?zip?file')
#?2:?Using?SPLIT
for?files?in?filenames:
????if?files.split('.')[-1]?==?'zip':
????????print(f'{files}?is?a?zip?file?(using?split)')
????else:
????????print?(f'{files}?is?NOT?a?zip?file?(using?split)')

my_list?=?['a'?,?'b'?,?'n'?,?'x'?,?1?,?2?,?3,?'a'?,?'n'?,?'b']
for?item?in?my_list:
????print?(f'current?item:?{item},?Type:?{type(item)}')

print?(my_list.sort())

my_list?=?['a'?,?'b'?,?'n'?,?'x'?,?1?,?2?,?3?,?'a'?,?33.3?,?'n'?,?'b']
number_list?=?[]
string_list?=?[]
for?item?in?my_list:
????print?(f'current?item:?{item},?Type:?{type(item)}')
????if?not?isinstance(item,str):
????????number_list.append(item)
????else:
????????string_list.append(item)
my_list?=?string_list
my_list?=?[letter?for?letter?in?my_list?if?isinstance(letter,str)]
def?get_numbers(input_char):
????if?not?isinstance(input_char,str):
????????return?True
????return?False
my_list?=?[1,2,3,'a','b','c']
check_list?=?filter(get_numbers,?my_list)
for?items?in?check_list:
????print(items)

反向列表(或字符串):?
names?=?['First'?,?'Middle'?,?'Last']
print(names[::-1])
>>>?['Last',?'Middle',?'First']
在列表中加入元素:
names?=?['First'?,?'Middle'?,?'Last']
full_name?=?'?'.join(names)
print(f'Full?Name:\n{full_name}')
>>>?First?Middle?Last6. 使用循環(huán):
greek_gods?=?['Zeus'?,?'Hera'?,?'Poseidon'?,?'Apollo'?,?'Bob']
for?index?in?range(0,len(greek_gods)):
????print?(f'at?index?{index}?,?we?have?:?{greek_gods[index]}')
for?name?in?greek_gods:
????print?(f'Greek?God:?{name}')
for?index,?name?in?enumerate(greek_gods):
????print?(f'at?index?{index}?,?we?have?:?{name}')

7. 使用函數(shù)(并正確談?wù)摵瘮?shù)):

def?print_list(input_list):
????for?each?in?input_list:
????????print(f'{each}')
????print()?#just?to?separate?output
greek_gods?=?['Zeus'?,?'Hera'?,?'Poseidon'?,?'Apollo'?,?'Bob']
grocery_list?=?['Apples'?,?'Milk'?,?'Bread']
print_list(greek_gods)
print_list(grocery_list)
print_list(['a'?,?'b'?,?'c'])

def?reverse_list(list_input):
????return?list_input[::-1]
my_list?=?['a',?'b'?,?'c']
print?(reverse_list(my_list))
>>>?['c',?'b',?'a']
class?Student():
????def?__init__(self,name):
????????self._name?=?name
????????self._subject_list?=?[]
如果想要?jiǎng)?chuàng)建一個(gè)student,可以像這樣將其分配給變量:
student1?=?Student('Martin?Aaberge')
如果需要更多student,可以使用同一個(gè)類并添加另外的姓名: student2?=?Student('Ninja?Henderson') `student1`和`student2`都是student類的實(shí)例,它們共享同一個(gè)藍(lán)圖,但彼此之間并無關(guān)系。 此時(shí),我們對(duì)學(xué)生們能做的不多,但我們確實(shí)增加了一個(gè)主題列表。要填充此列表,我們需要?jiǎng)?chuàng)建方法,你可以調(diào)用方法來實(shí)現(xiàn)與該類實(shí)例的交互。 我們更新: class?Student():
????def?__init__(self,name):
????????self._name?=?name
????????self._subject_list?=?[]
????def?add_subject(self,?subject_name):
????????self._subject_list.append(subject_name)
????def?get_student_data(self):
????????print?(f'Student:?{self._name}?is?assigned?to:')
????????for?subject?in?self._subject_list:
????????????print?(f'{subject}')
????????print()這個(gè)類可以用于創(chuàng)建、編輯學(xué)生信息,并獲取我們存在其中的信息:
#create?students:
student1?=?Student('Martin?Aaberge')
student2?=?Student('Heidi?Hummelvold')
#add?subjects?to?student1
student1.add_subject('psychology_101')
student1.add_subject('it_security_101')
#add?subject?to?student2
student2.add_subject('leadership_101')
#print?current?data?on?students
student1.get_student_data()
student2.get_student_data()
from?student?import?Student
student1?=?Student('Martin')
student1.add_subject('biomechanics_2020')
student1.get_student_data()


chocolate_cake?=?'yummy'
chocolateCake?=?'Yummy'
結(jié)論
往期精彩推薦 --??
-- 2、Python 造假數(shù)據(jù),用Faker就夠了
-- 3、在Python中玩轉(zhuǎn)Json數(shù)據(jù)
--? 留下你的?“在看”?唄!

