入門python知識點總結以及15道題的解題思路分析

知識點總結

一、序列

操作符

x in s              如果x是列表s的元素,返回True,否則False
s + t               連接兩個序列s和t
s*n或者n*s            將序列s複製n次
s[i]                返回s中第i元素
s[i:j]或s[i:j: k]        切片,返回序列s中第i到j-1以k爲步長的元素子序列

函數

len(s)              返回序列的長度
min(s)              返回序列的最小值
max(s)              返回序列的最大值
s.index或s.Index(x,i,j)      索引從i到j-1中第一次出現x的位置
s.count(x)          返回x在s中出現的次數
ls[i] = x           替換列表中第i元素爲x
ls[i:j:k] =lt           用lt代替從i到j-1步長爲k的元素
ls += lt            把lt元素加入ls中
ls*= n              把ls的元素複製n次  

二、列表

函數

ls.append(x)                把x加入列表ls中
ls.clear()              刪除ls中所有元素
ls.copy()               生成一個新列表並賦予ls的元素
ls.insert(i.x)              在第i位置家加入元素x
ls.pop(i)               將列表ls中第i元素去除並刪除其元素
ls.remove(x)                將列表ls出現的第一個元素x刪除
ls.reverse()                將列表ls的元素反轉

三、元組

與列表類似,但是內容不可添加或者刪除,用()表示。

四、字符串

str.lower()
或者str.upper()               把元素全部大寫\小寫
str.split(x)                用x把str的元素分隔開
str.count(x)                返回x在str中出現的次數
str.replace(x,y)            用y替換x
str.center(width,x)         將str根據寬度width居中,x填充左右部分
str.strip(x)                刪除str首尾的x
x.join(str)             在除了最後1個元素的其他元素後增加一個str  

五、15道例題

1、用階梯形狀打印出九九乘法表

解題思想

九九乘法表需要把兩個變量相乘,可考慮用for if循環
由於每次print都會自帶一個換行符,所以可以考慮用end去除換行符

代碼

for i in range(1,4):
 for j in range(1,i+1):
    print(i,'*',j,'=',i*j, sep='', end='  ')
print('')

2、打印字符串"甲乙丙丁午己庚辛壬癸"的所有字符,要求每個字符佔據一行

解題思想

這樣依次打印字符串,考慮用 for循環。

代碼

for c in "甲乙丙丁午己庚辛壬癸":
   print(c)

3、循環十次在同一行內打印10個’X’

解題思想

考慮while循環,同一行用end函數換掉末尾的換行符

代碼

i = 0
while i<10:
    print('*', end='')
    i += 1

4、計算績點

若分數小於60,則GPA=0

若分數score>=60, 則 GPA=(score-50)/10

解題思想

需要分情況,所以可用if函數

代碼

def GPA(score):
  GPA = 0
   if score>=60:
     GPA = (score-50)/10
 return GPA

輸入分數即可得到GPA

5、計算不大於100的所有自然數的和

解題思路

for循環裏面加入疊加的變量

代碼

x = 0
for i in range(1,101):
    x+=i
print(x)

6、將字符串‘pythonlil’變成大寫形式

解題思想

可用upper實現

代碼

x = 'pythonlil'.upper()
print(x)

7、用單個for,循環十次在同一行內打印十個數字’0 1 2 3 4 5 6 7 8 9 ’

字符之間用單個空格分隔

解題思想

十個數字可以用range函數實現,通過for 循環解題

代碼

for i in range(10):
    print(i, end=' ')
print('')

8、循環十次在同一行內打印10個’=’

解題思想

看到循環應該反應用for或者while來解決

代碼

for i in range(10):
    print('=', end='')
print('')

9、打印下列圖案:12個等號,每行4個

解題思想

打印重複等號用for或者while實現,換行可以用if實現

代碼

for i in range(1,13):
    print('=', end='')
    if(i%4==0):
        print('\n', end='')

10、用雙層for循環打印九九乘法表

解題思路

限定用兩個for 一個for控制第一個變量 另一個for控制第二個變量 換行用end函數實現

代碼

for i in range(1,4):
    for j in range(1,i+1):
        print(i,'*',j,'=',i*j, sep='', end='  ')
    print('')

11、異常處理

假設在一大堆日期數據中出現多個錯誤日期2019/2/29 除去這些不正確的行

解題思想

需要鎖定29這個不存在二月的號數,需要用split分隔

代碼(設data是日期列表)

for line in data1:
    linelist = line.split(',')
    linelist1 = linelist[1].split(' ')
    linelist2 = linelist1[0].split('-')
    linelist3 = list(linelist2)
    if linelist3[1] == '02' and linelist3[2] == '29'
        del line

12、數據分類

假設有包含1到12月的日期列表linelist 將每個月的日期分別放在不同的csv文件裏面

解題思想

需要鎖定月份 所以要把月份分隔開來作爲分類依據

代碼(設data是日期列表)

for line in data:
     linelist = line.split(',')
     linelist1 = linelist[1].split(' ')
     linelist2 = linelist1[0].split('-')
     if linelist2[1]=='01':          
            with open('mon1.csv','a+')as f1:
                f1.write(line)
        elif linelist2[1]=='02':
            with open('mon2.csv','a+')as f2:
                f2.write(line)
        elif linelist2[1]=='03':
            with open('mon3.csv','a+')as f3:
                f3.write(line)       
        elif linelist2[1]=='04':
            with open('mon4.csv','a+')as f4:
                f4.write(line)
        elif linelist2[1]=='05':
            with open('mon5.csv','a+')as f5:
                f5.write(line)
        elif linelist2[1]=='06':
            with open('mon6.csv','a+')as f6:
                f6.write(line)
        elif linelist2[1]=='07':
            with open('mon7.csv','a+')as f7:
                f7.write(line)
        elif linelist2[1]=='08':
            with open('mon8.csv','a+')as f8:
                f8.write(line)              

13、比較[1,3,6,8,5,2,6]的大小並按照從大到小排序

解題思想

sort函數可以按照從小到大的順序排序,題目要的是從大到小,用reverse = True可實現降序

代碼

[1,3,6,8,5,2,6].sort(reverse=True)

14、輸入一個阿拉伯整數,四位數字一組,間隔以逗號

解題思想

需要判斷什麼時候達到四位並進行分隔,定義一個函數 n即爲輸入的整數

代碼

def wan(n, sep=','):
    n = str(n)
    L = len(n)
    lst = []
    b = L%4
    if b>0:
        lst = [n[:b],]
    for i in range(b,L,4):
        lst.append(n[i:i+4])
    n = sep.join(lst)
    return n

使用print(wan(n))就可以得到結果

15、 創建一個1.txt文件 輸入’靜夜思‘

解題思想

創建py文件可以直接用with open函數 輸入文字用write()實現

代碼

with open('1.txt','w+') as f:
    f.write('靜夜思')

以上就是知識點的總結和15道例題的解析

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章