每天學一點,形成一種知識複利
問題19:
楊輝三角定義如下:
1 1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...用python列印出楊輝三角。
分析:什麼是楊輝三角?
楊輝三角,是二項式係數在三角形中的一種幾何排列
即(1+x)平方展開為1+2x+x^2,其係數為1,2,1,其中第n行的數字有n項,
每個數等於它上方兩數之和
。我們可以把每一行看做乙個list,所以整個楊輝三角,可以定義為list_all = * n
每個數等於它上方兩數之和等於list_all[row][col] = list_all[row-1][col] + list_all[row-1][col-1]
democode:
#! /usr/bin/python3
def main():
num = int(input("please input rows num:"))
list_all = * num
for row in range(len(list_all)):
list_all[row] =[none] * (row + 1)
#print(list_all)
for col in range(len(list_all[row])):
if col == 0 or col == row:
list_all[row][col] = 1
else:
list_all[row][col] = list_all[row-1][col] + list_all[row-1][col-1]
print(list_all[row][col], end = '\t')
print()
if __name__ == '__main__':
main()
問題20:
驗證輸入使用者名稱和qq號是否有效並給出對應的提示資訊;要求:
使用者名稱必須由字母、數字或下劃線構成且長度在6~20個字元之間
qq號是5~12的數字且首位不能為0
分析:此題涉及到了正規表示式,需要匯入re模組,用到了re裡的match()方法
democode:
import re
def main():
username = input('please input user name:')
qq = input('please inut qq num: ')
m1 = re.match(r'^[0-9a-za-z_]$', username)
if not m1:
print('please input an valid user name.')
m2 = re.match(r'^[1-9]\d$', qq)
if not m2:
print('please input an valid qq num.')
if m1 and m2:
print('input correct!')
if __name__ == '__main__':
main()
每天學一點之Python100例(3 4)
每天學一點,形成一種知識複利 問題3 乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少?分析 從問題中我們這知道,這題的重點就是 完全平方數 先了解下什麼是完全平方數。完全平方數 若乙個數能表示成某乙個整數的平方的形式,則稱這個數為完全平方數。將問題數學化,設...
每天學一點之Python100例(13 14)
每天學一點,形成一種知識複利 問題13 十進位制轉二進位制,八進位制,十六進製制 分析 使用對應函式進行轉換 democode usr bin python3 def hexconverter input num int input please input a num print dec num ...
每天學一點之Python100例(21 22)
每天學一點,形成一種知識複利 問題21 棧的簡單實現 分析 什麼是棧?棧是一種容器,可存入資料元素 訪問元素 刪除元素等。棧的基本操作是乙個封閉的集合。現在給出乙個棧抽象資料型別的描述,其中定義的操作包括 棧的建立 建立乙個空棧 判斷棧是否為空 將元素壓入棧中 進棧或入棧 從棧中彈出元素並將其返回 ...