學習目標:
開始大家是萌新
最初的15天,都是Python語言基礎的修煉,基本功很重要
貴在堅持,一定要每天做一些小練習!
加油!Fighting!!!
學習內容:
**1.計算BMI指數
**
height = float(input("請輸入你的身高 (單位為米): "))
weight = float(input("請輸入你的體重 (單位為千克) : "))
bmi = weight / (height * height)
print(“您的bmi指數為:” + str(bmi))
if bmi < 18.5:
print(“您的體重過輕!!”)
if bmi >= 18.5 and bmi < 24.9:
print("正常范圍,繼續保持 ")
if bmi >= 24.9 and bmi < 29.9:
print(“您的體重過胖!!”)
if bmi >= 29.9:
print(“肥胖!!!”)
2. import 模塊名
import math
import random
import posixpath as path
print(math.sqrt(16)) #計算并輸出16的平方根
print(math.cos(math.pi/4)) #計算余弦值
print(random.choices(‘abcd’, k=8)) #從字串’abcd’隨機選擇8個字符
print(path.isfile(r’C:\Windows\notepad.exe’)) #測驗指定路徑是否為檔案
3.from 模塊名 import 物件名
from math import pi as PI
from os.path import getsize
from random import choice
r = 3
print(round(PIrr,2)) #計算半徑為3的圓的面積
print(getsize(r’C:\Windows\notepad.exe’)) #計算檔案大小,單位為位元組
print(choice(‘Python’)) #從字串中隨機選擇一個字符
4.from模塊名 import *
from itertools import *
characters = ‘1234’
for item in combinations(characters,3): #從4 個字串中任選3個的組合
print(item, end=’’) #“end=’’“表示輸出后不換行
print(’\n’+’=’*20) #換行后輸出20個等于號
for item in permutations(characters, 3): #從4 個字符中任選3個的排列
print(item,end=’’)
5.整數,浮點數,復數
import math
print(math.factorial(32)) #計算 32 的階乘
print(0.4-0.3 == 0.1) #浮點數之間盡量避免直接比較大小
print(math.isclose(0.4-0.3,0.1)) #測驗兩個浮點數之間是否接近
num = 7
squreRoot = num ** 0.5 #計算平方根
print(squreRoot2 == num)
print(math.isclose(squreRoot2, num))
c = 3+4j #Python 內置支持復數型別及其運算
print(c+c) #復數相加
print(c**2) #冪運算
print(c.real) #查看復數的實部
print(c.imag) #查看復數的虛部
print(c+4j.imag) #相當于 3+(4j).imag
print(c.conjugate()) #查看共軛復數
print(abs?) #計算復數的模
6.串列,元組,字典,集合
創建串列物件
x_list = [1,2,3]
創建元組物件
x_tuple = (1,2,3)
創建字典物件,元素的形式為 “鍵:值”
x_dict = {‘a’:97, ‘b’:98, ‘c’:99}
創建集合物件
x_set = {1,2,3}
使用下標訪問串列中指定位置的元素,元素下標從0開始
print(x_list[1])
元組也支持使用序號作為下標,1 表示第二個元素的下標
print(x_tuple[1])
#訪問字典中特定“鍵”對應的“值”,字典對應的下標是“鍵”
print(x_dict[‘a’])
#查看串列長度,也就是其中元素的個數
print(len(x_list))
#查看元素 2 在元組中首次出現的位置
print(x_tuple.index(2))
#查看字典中哪些“鍵”對應的“值”為98
for key, value in x_dict.items():
if value == 98:
print(key)
1.1 lambda 運算式
也可以給lambda 運算式起名字,定義具體函式名
func = lambda x, y: x+y
像呼叫函式一樣呼叫lambda 運算式
print(func(3, 5))
data = [9, 88, 444]
按各位數字之和的大小升序排序
print(sorted(data, key=lambda num: sum(map(int, str(num)))))
輸出轉換成字串之后的長度最大的數字
print(max(data, key=lambda num: len(str(num))))
1.2 遞回函式
撰寫遞回函式,計算組合數c(n,i),也就是從n個物品中任選i個的選法
from functools import lru_cache
使用修飾器,增加用來記憶中間結果的快取
@lru_cache(maxsize=64)
def cni(n,i):
if ni or i0:
return 1
return cni(n-1,i) + cni(n-1,i-1)
print(cni(5, 2))
1.3位置引數
def add(a,b):
print(‘In function:a={},b={}’.format(a,b))
return a+b
print(add(3, 5))
# 1.4 默認值引數
def add(a, b=5):
print(‘In function:a={},b={}’.format(a,b))
return a+b
print(add(3))
print(add(3,8))
# 1.5 關鍵引數
def add(a,b):
print(‘In function:a={},b={}’.format(a,b))
return a+b
print(add(b=8, a=3))
# 1.6 可變長度引數
def add(a, b, *args, **kwargs):
print(‘In function:\na={}\nb={}\nargs={}’.format(a,b, args, kwargs))
return a+b+sum(args)+sum(kwargs.values())
print(add(3, 8, 1, 2, 3, 4, x=5, y=6, z=7))
print(’=’*20)
print(add(1, 2, 3, 4, 5, 6, 7, 8, 9, x=10, y=11))
2.1 變數作用域
#def func():
global x
x = 666
y = 888
print(x, y, z, sep=’,’)
x, y, z = [3, 5, 7]
func()
3.1 使用遞回法計算自然數各位數字之和
def digitSum():
if n ==0:
return 0
# 先計算除最后一位的其他位之和
# 再加上最后一位
return digitSum(n//10) + n%10
函式小練習
1
.撰寫一個函式calcluate,可以接收任意多個數,回傳的是一個元組 #元組的第一個值為所有引數的平均值,第二個值大于平均值的所有數
def calculate(*args):
ave = sum(args) / len(args)
up_num=[]
for i in args:
if i > ave:
up_num.append(i)
return ave, up_num
print(calculate(1, 2, 3, 4, 5))
撰寫一個函式,接收字串引數,回傳一個元祖,‘hello,WORLD’ #元組的第一個值為大寫字母的個數,第二個值為小寫字母個數
def fun(x):
upper_count = 0
lower_count = 0
for item in x:
if item.isupper():
upper_count+=1
elif item.islower():
lower_count+=1
else:
continue
return upper_count,lower_count
print(fun(‘hello WORLD’))
撰寫函式,接收一個串列(包含30個整形數)和一個整形數k,回傳一個新串列 #函式需求: 1.將串列下標k之前對應(不包含k)的元素逆序 2.將下標k及之后的元素逆序 3.[1,2,3,4,5]2[2,1,5,4,3]
list = []
def fun(new_list, k):
if k <0 or k >len(new_list):
return ‘error’
return new_list[:k][::-1] + new_list[k:][::-1]
print(fun([1,2,3,4,5],2))
4
.用函式實作100-200里面的所有的素數
def test(num):
list = []
i = num - 1
while i > 1:
if num % i ==0:
list.append(i)
i -= 1
if len(list) == 0:
print(num, end=’ ')
def test2(start_num, stop_num):
j = start_num
while j < stop_num:
test(j)
j += 1
test2(100, 200)
print(’’)
**
5.模擬轉盤抽獎游戲
**
#轉盤分為三部分:一等獎,二等獎和三等獎
#轉盤轉的時候是隨機的
#如果范圍在[0,0.08)之間,代表一等獎
#如果范圍在[0.08,0.3)之間,代表二等獎
#如果范圍在[0.3,1.0)之間,代表三等獎
#模擬本次活動1000人參加,模擬游戲是需要準備各等級獎品的個數
import random
#print(random.random())
rewardDict = {
‘一等獎’:(0,0.08),
‘二等獎’:(0.08,0.3),
‘三等獎’:(0.3,1)
}
def rewardFun():
“”"“用戶的得獎等級”""
# 生成一個0~1之間的亂數
number = random.random()
# 判斷隨機轉盤是幾等獎
for k,v in rewardDict.items():
if v[0] <=number <=v[1]:
return k
#print(rewardFun())
resultDict={}
for i in range(1000):
res = rewardFun()
if res not in resultDict:
resultDict[res] = 1
else:
resultDict[res] +=1
for k,v in resultDict.items():
print(k,’---->’,v)
學習時間:
可以添加計劃學習的時間
例如:
1、 周一至周五晚上 7 點—晚上9點
2、 周六上午 9 點-上午 11 點
3、 周日下午 3 點-下午 6 點
這樣可以更加有動力持續地學習.
總結:
我一開始也和很多人一樣,來一題做一題,做一題,下一題又不會了,感覺進度很慢,而且感覺沒有什么進步和積累,但是練的多了,就容易養成一種編程的思維,就變得簡單了.
對于代碼能力,我們可以選擇一些簡單的題目或者是我們做過的題目,稍微整理一下思路(不會的先看別人的題解,理解思路消化一下),然后開始寫代碼,
**慢慢來,take it easy!!!!
如果您覺得這篇文章有幫助,麻煩點個贊**加粗樣式**再走哈,謝謝!!!!!****
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/293967.html
標籤:python
