題目045:統計 1 到 100 之和。
'''
def tm045():
? ? '''
? ? 【個人備注】:簡單,但官網有人寫的更簡單
? ? '''
? ? s = 0
? ? for i in range(1,101):
? ? ? ? s+=i
? ? print(s)
? ? # 更簡潔的方法
? ? print(sum(range(1,101)))
?
?
'''
題目046:求輸入數字的平方,如果平方運算后小于 50 則退出。
'''
def tm046():
? ? '''
? ? 【個人備注】:簡單
? ? '''
? ? while 1:
? ? ? ? x= input('輸入數字得到平方值:')
? ? ? ? print(x*x)
? ? ? ? if x*x<50:
? ? ? ? ? ? break
?
?
'''
題目047:兩個變量值互換。
'''
def tm047():
? ? '''
? ? 【個人備注】:很簡單
? ? '''
? ? a,b=1,2
? ? a,b=b,a
? ? print(a,b)
?
?
?
'''
題目048:數字比較。
'''
def tm048():
? ? '''
? ? 【個人備注】:看了一眼官網答案,簡單到懶得寫。以下官網答案。
? ? '''
? ? i = 10
? ? j = 20
? ? if i > j:
? ? ? ? print('%d 大于 %d' % (i,j))
? ? elif i == j:
? ? ? ? print('%d 等于 %d' % (i,j))
? ? elif i < j:
? ? ? ? print('%d 小于 %d' % (i,j))
? ? else:
? ? ? ? print('未知')
?
?
?
'''
題目049:使用lambda來創建匿名函數。
'''
def tm049():
? ? '''
? ? 【個人備注】:用的不多又忘了,看了一下網上的教程,整理了一下。
? ? '''
? ? #lambda函數也叫匿名函數,即,函數沒有具體的名稱。先來看一個最簡單例子:
? ? def f(x):
? ? ? ? return x**2
? ? print(f(4))
? ? #Python中使用lambda的話,寫成這樣
? ? g = lambda x:x**2
? ? print(g(4))
? ? #lambda存在意義就是對簡單函數的簡潔表示。
? ? #lambda語句中,冒號前是參數,可以有多個,用逗號隔開,冒號右邊的返回值。
? ? #常搭配內置函數map、filter、reduce,都是應用于序列的內置函數。常見的序列包括list、tuple、str。
? ? #map(func, *iterables) --> map object
? ? #filter(function or None, iterable) --> filter object
? ? #reduce(function, sequence[, initial]) -> value
? ? foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
? ? print(list(map(lambda x: x * 2 + 10, foo))) ? ? ? # 映射 [14, 46, 28, 54, 44, 58, 26, 34, 64]
? ? print(list(filter(lambda x: x % 3 == 0, foo))) ? ?# 過濾 [18, 9, 24, 12, 27]
? ? from functools import reduce ? ? ? ? ? ? ? ? ? ? ?# 在Python 3里,reduce()函數已經被從全局名字空間里移除了,它現在被放置在fucntools模塊里
? ? print(reduce(lambda x, y: x + y, foo)) ? ? ? ? ? ?# 累積 139?
?
?
'''
題目050:輸出一個隨機數。
'''
def tm050():
? ? '''
? ? 【個人備注】:之前學習隨機的時候整理的東西,用到時候來找就行了
? ? '''
? ? import random
? ? # 隨機數操作
? ? random.random() ? ? ? ? ? ? # 0.85415370477785668 ? # 隨機一個[0,1)之間的浮點數
? ? random.uniform(0, 100) ? ? ?# 18.7356606526 ? ? ? ? # 隨機一個[0,100]之間的浮點數
? ? random.randrange(0, 100, 2) # 44 ? ? ? ? ? ? ? ? ? ?# 隨機一個[0,100)之間的偶數
? ? random.randint(0, 100) ? ? ?# 22 ? ? ? ? ? ? ? ? ? ?# 隨機一個[0,100]之間的整數
? ? # 隨機字符操作
? ? seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-" # 任意字符串(作為隨機字符種子庫)
? ? random.choice(seed) ? ? ? ? ? ? # 'd' ? ? ? ? ? ? ? # 隨機一個字符
? ? random.sample(seed, 3) ? ? ? ? ?# ['a', 'd', 'b'] ? # 隨機多個字符(字符可重復)
? ? ''.join(random.sample(seed,3)) ?# '^f^' ? ? ? ? ? ? # 隨機指定長度字符串(字符可重復)
? ? # 隨機列表操作
? ? random.shuffle(list) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 列表中的元素打亂
?
?
'''
題目051~053、055:
學習使用按位與 &
學習使用按位或 |
學習使用按位異或 ^
學習使用按位取反 ~
'''
def tm051(): # tm052 # tm053 # tm055
? ? '''
? ? 【個人備注】:大概看了一下資料,按位操作可以通過bin()函數轉換為二進制從而實現。
? ? 感覺二進制的計算如果不是學加密之類的基本用不上。
? ? 所以這一題,大概寫了集合的用法,&、|在python中是集合set()才用的符號
? ? 兩個列表求交集并集,通常也都是轉換為集合,然后進行計算的。
? ? '''
? ? # 可迭代變量轉換為集合形式
? ? x = set('runoob')
? ? y = set('google')
? ? print(x, y) ? ? ? ? ?# 重復的被刪除 {'n', 'o', 'b', 'u', 'r'} {'o', 'g', 'e', 'l'}
? ? # 集合的交集、并集、差集
? ? print(x & y) ? ? ? ? # 交集 {'o'}
? ? print(x | y) ? ? ? ? # 并集 {'e', 'o', 'g', 'l', 'u', 'n', 'b', 'r'}
? ? print(x - y) ? ? ? ? # 差集 {'n', 'b', 'u', 'r'}
? ? # 當然也可以寫成函數形式,不過確實沒有上面符號好記。
? ? print(x.intersection(y))
? ? print(x.union(y))
? ? print(x.difference(y))
?
?
'''
題目054:取一個整數a從右端開始的4-7位。
'''
def tm054():
? ? '''
? ? 【個人備注】:官網答案不對
? ? '''
? ? a = 123456789
? ? b = str(a)
? ? print(b[-7:-3]) ?# 寫的時候注意一下python切片是[-7:-4)左閉右開的,不包含[-4]的,所以要寫成-3才能取到
?