前言
最近比較清閒,本來想着深入學習一下安卓的,但是沒什麼項目實踐,控件也寫了不少了,沒什麼動力。於是乎就研究下新奇的東西,學了一段時間的flutter,基本入門,寫一些界面沒什麼問題。雖說flutter是谷歌推出的跨平臺解決方案,但是鑑於之前蘋果強制下架熱更新APP,外加上覺得蘋果是不會去支持、允許競爭對手的產品的,所以,暫時擱置了flutter,學點基礎,入個門,瞭解有這樣一個東西,目前來說足夠了。
放棄flutter之後,空閒時間又不知道如何打發,所以就想學一下熱門的技術,於是乎,就挑了Python。近幾年Python真是火得一塌糊塗,學了一小段時間,推薦幾個學習的資料:
如果是完全沒接觸過編程語言,想入坑的,建議看小甲魚Python
有編程基礎可以看看Python資料大全
個人認爲,編程語言都大同小異,有一定編程基礎的人,學一門新語言的基礎語法,都能較快入手,所以建議不要因爲害怕是新語言,就覺得需要花費大量的時間,然後就不去學習,我個人是認爲知識是很好的東西,能學多點就學多點,讀書無用論都是沒讀書的人說的,一開始學Python,我是看着基礎語法,瞭解基礎語法之後,就根據練習題,編程。我用的是Python3.7,Python2跟Python3在代碼上,差距還是挺大的。
# 用1,2,3,4組成各不相同的3位數
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if (i != j) and (i != k) and (j != k):
print(i, j, k)
打印結果:
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2
# 利潤,高於10w,提成10%,10-20w之間,高出10w的部分提成7.5%,20-40w之間,高出20w的部分提成5%,
# 40-60w之間,高出40w的提成3%,60-100w之間,高出60w的提成1.5%,高於100w,提成1%
money = int(input('請輸入淨利潤:'))
moneyList = [1000000, 600000, 400000, 200000, 100000, 0]
moneyRat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
moneySum = 0
for i in range(0, 6):
if money > moneyList[i]:
moneySum = moneySum + (money - moneyList[i]) * moneyRat[i]
money = moneyList[i]
print('提成:%d' % moneySum)
打印結果:
請輸入淨利潤:162000
提成:14650
# 一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
for i in range(1, 85):
if 168 % i == 0:
j = 168 / i
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0:
m = (i + j) / 2
n = (i - j) / 2
x = n * n - 100
print(x)
打印結果:
-99.0
21.0
261.0
1581.0
# 輸入某年某月某日,判斷這一天是這一年的第幾天?
year = int(input('請輸入年份:'))
month = int(input('請輸入月份:'))
day = int(input('請輸入日期:'))
months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
sumDay = 0
if 0 < month <= 12:
sumDay = months[month - 1]
else:
print('請輸入正確的月份')
sumDay += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
sumDay += 1
print('這是%d年的第' % year + '%d天' % sumDay)
打印結果:
請輸入年份:2018
請輸入月份:07
請輸入日期:06
這是2018年的第187天
# 輸入三個整數x,y,z,請把這三個數由小到大輸出。
x = int(input('請輸入X:'))
y = int(input('請輸入Y:'))
z = int(input('請輸入Z:'))
list0 = [x, y, z]
list0.sort()
print(list0)
打印結果:
請輸入X:100
請輸入Y:56
請輸入Z:89
[56, 89, 100]
# 暫停一秒輸出
import time
a = [1, 2, 3, 4, 5]
for i in a:
print(i)
time.sleep(1)
# 獲取當前時間
import time
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
打印結果:
2018-07-06 14:13:47
# 打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因爲153=1的三次方+5的三次方+3的三次方。
for n in range(100, 1000):
i = int(n / 100)
j = int(n / 10 % 10)
k = int(n % 10)
if n == i ** 3 + j ** 3 + k ** 3:
print(n)
打印結果:
153
370
371
407
# 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
import string
str1 = input('請輸入一行字符:')
chars = 0
space = 0
digit = 0
others = 0
for i in str1:
if i.isalpha():
chars += 1
elif i.isspace():
space += 1
elif i.isdigit():
digit += 1
else:
others += 1
print('字母:%d個\n空格:%d個\n數字:%d個\n其他字符:%d個' % (chars, space, digit, others))
打印結果:
請輸入一行字符:dkpasdpla 2039290akdpskpa ']'\.'as.d'2[pds z[pwe
字母:27個
空格:5個
數字:8個
其他字符:10個
# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加)
Tn = 0
Sn = []
a = int(input('請輸入一個數:'))
for count in range(a):
Tn = Tn + a
a = a * 10
Sn.append(Tn)
print(Tn)
sums = 0
for i in Sn:
sums = sums + i
print("計算和爲:", sums)
打印結果:
請輸入一個數:6
6
66
666
6666
66666
666666
計算和爲: 740736
# 一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?
h = []
total = []
a = 100
for i in range(1, 11):
if i == 1:
h.append(a)
else:
h.append(a * 2)
a = a / 2
total.append(a)
print('總高度:{0}'.format(sum(h)))
print('第10次反彈高度:{0}'.format(total[-1]))
打印結果:
總高度:299.609375
第10次反彈高度:0.09765625
# 有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和
a, b, s = 2, 1, 0
for i in range(1, 21):
s = s + a / b
t = a
a = a + b
b = t
print(s)
打印結果:
32.66026079864164
# 求1+2!+3!+...+20!的和。
t = 1
s = 0
for i in range(1, 21):
t = i * t
s = s + t
print(s)
打印結果:
2561327494111820313
# 利用遞歸方法求9!
def a(k):
if k == 0:
sums = 1
else:
sums = k * a(k - 1)
return sums
print(a(9))
打印結果:
362880