Python基礎知識
1. 介紹關於自己的一些詳細信息
首先通過用戶終端輸入自己的學號、姓名、性別、出生日期、用戶名、所修的課程和所選的教材等基本信息。
然後判斷自己的出生年份是否爲閏年、創建的用戶名是否合法。
最後通過用戶終端將所有信息和判斷結果輸出。
代碼:
student = input("Please enter your student ID:")
name = input("Please enter your name:")
gender = input("Please enter your gender:")
birthday = input("Please enter your birthday(2020/01/01):")
username = str(input("Please enter your username:"))
course = input("Please enter your course:")
textbook = input("Please enter your textbook:")
print("student ID:", student)
print("name:", name)
print("gender:", gender)
print("birthday:", birthday)
print("username:", username)
print("course:", course)
print("textbook:", textbook)
year = int(birthday[:4:])
boolyear = (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0
if boolyear:
print("出生年%d 是閏年" %year)
else:
print("出生年%d 不是閏年" %year)
yingwen="abcdefghijklmnopqrstuvwxyz"
xiahuaxian="_"
shuzi="1234567890"
if len(username) == 3:
if username[0] in yingwen+xiahuaxian:
if username[1] in yingwen+xiahuaxian+shuzi:
if username[2] in yingwen+shuzi:
print("用戶名:%s 合法" % username)
else:
print("用戶名:%s 不合法,第三個字符必須是小寫字母或數字" % username)
else:
print("用戶名:%s 不合法,第二個字符必須是小寫字母或下劃線或數字" % username)
else:
print("用戶名:%s 不合法,第一個字符必須是小寫字母或下劃線" % username)
else:
print("用戶名:%s 不合法,字符長度超出3" %username)
注意:光會理論填空是不夠的,在此送大家一套2020最新Python全棧實戰視頻教程,點擊此處 免費獲取一起進步哦!
2. 內部競聘
在公司內部競聘中,候選人小明和小強競聘部門副經理,考覈的選項共有5項,分別是部門同事投票、去年業績、年齡、在公司年份、競聘演講得分。評分規則如下:
- 部門同事投票,每一票得3分
- 業績得分,每拿業績200000,得一分
- 年齡,年齡每小一歲得2分
- 在公司年份,沒長一年得5分
- 競聘演講,得分爲實際演講得分
各項得分如下:
請計算兩位候選人的最終得分,評選出部門副經理
提示:將信息保存在變量中;使用運算符進行計算
代碼:
sum1 = 0
sum2 = 0
piao1 = 11
piao2 = 7
ye1 = 586319
ye2 = 811064
age1 = 34
age2 = 27
year1 = 10
year2 = 4
score1 = 81
score2 = 83
sum1 = (piao1/1)*3
sum1 = int((ye1/200000))*1 + sum1
sum2 = (piao2/1)*3
sum2 = int((ye2/200000))*1 + sum2
if age1 < age2:
sum1 = (age2 - age1) * 2 + sum1
else:
sum2 = (age1 - age2) * 2 + sum2
if year1 > year2:
sum1 = (year1 - year2) * 5 + sum1
else:
sum2 = (year2 - year1) * 5 + sum2
sum1 = score1 + sum1
sum2 = score2 + sum2
print("小明得分:", sum1, "小強得分:", sum2)
3. 有四個字符串:
’ haPPy BiRthDAy To u’
‘Happy biRthDAy To you’
’ haPpy BirThdAy 2 deAr LiLi’
’ happy birthday 2 u’
可以看出這4個字符串連起來是一首歌,但不工整,並夾雜着很多口語,請將上述字符串修改爲以下規範格式,並輸出。
happy birthday to you
happy birthday to yoyou
happy birthday to dear lili
happy birthday to you
代碼:
str1 = ' haPPy BiRthDAy To u'
str2 = 'Happy biRthDAy To you'
str3 = ' haPpy BirThdAy 2 deAr LiLi'
str4 = ' happy birthday 2 u'
str1 = str1.strip().lower().replace('u', 'you')+'\n'
str2 = str2.strip().lower().replace('you', 'yoyou')+'\n'
str3 = str3.strip().lower().replace('2', 'to')+'\n'
str4 = str4.strip().lower().replace('2', 'to').replace('u', 'you')+'\n'
print(str1+str2+str3+str4)
選擇與循環
1. 使用循環遍歷你的課程列表
(課程信息自擬,可以輸入,也可以程序中固定好課程),找出包含“設計”字的課程,並輸出。
wangxinlei = ["軟件測試", "編譯原理", "雲計算基礎設計", "大數據技術", "python開發基礎"]
wangxin=[]
for i in wangxinlei:
if '設計' in i:
wangxin.append(i)
print(wangxin)
2. 打印所有三位的水仙花數。
在數論中,水仙花數(narcissistic number)是指一個n位數,它的各個數位的數的n次方之和等於該數本身。例如:153是三位水仙花數,因爲153 = 13 + 53 + 33。
wangxinlei =[]
for i in range(100,1000):
m = int(i / 100)
n = int(i % 100 / 10)
p = i % 100 % 10
if i == m * m * m + n * n * n + p * p * p:
print(i)
wangxinlei.append(i)
print(wangxinlei)
3. 給定一個正整數,判斷它是否是素數
n = int(input("其輸入一個數字:"))
flag = True
if n <= 1:
flag = False
i = 2
while i*i <= n:
if n % i == 0:
flag = False
i += 1
if flag == True:
print(n, "是素數")
else:
print(n, "不是素數")
4. 循環玩一個猜數字遊戲,猜計算機產生90-100
(或自擬區間,建議10個數以內便於猜測)之間的隨機整數,直到猜中爲止。
from random import randint
i = 0
while 1:
i =i +1
wangxinlei = int(input("請輸入你要猜的數字:"))
num = randint(90,100)
print("產生隨機數",num)
if wangxinlei ==num:
print("恭喜你!猜了", i, "次就猜出來了")
break
else:
print("很遺憾,你猜錯了!!")
Python序列的使用
1. 請輸入4或多門課程信息
幾個學生,及每門課程的成績單,參考如下
實驗時,數據自擬,不要用上面的數據,成績單中要有你的兩門課程,之後統計每個同學的成績單,數據結果參考如下:
實驗代碼:
編譯原理 = {'王鑫壘':90, '劉達':95, '張三':89, '李四':70, '王五':60}
ui設計= {'王鑫壘':91, '劉達':94, '張三':85, '李四':78, '王五':66}
大數據 ={'王鑫壘':92, '張三':80, '李四':72, '王五':90}
python基礎 ={'王鑫壘':93, '劉達':90, '李四':70, '王五':61}
students = ['王鑫壘', '劉達', '張三', '李四', '王五']
courses =['編譯原理', 'ui設計', '大數據', 'python基礎']
for student in students:
lesson =[]
for item in 編譯原理.items():
if student==item[0]:
lesson.append(('編譯原理', item[1]))
for item in ui設計.items():
if student==item[0]:
lesson.append(('ui設計', item[1]))
for item in 大數據.items():
if student==item[0]:
lesson.append(('大數據', item[1]))
for item in python基礎.items():
if student==item[0]:
lesson.append(('python基礎', item[1]))
print(student, '選修了', len(lesson), '門課程:')
for i in lesson:
print("\t", i[0], ':', i[1])
2. 統計任意你喜歡的一首現代詩、散文、課文節選
中英文歌曲的歌詞等中出現的漢字或英文單詞和標點的次數,例如詩經《桃夭》的統計結果如下:
代碼:
url = input('請輸入要統計的文章:')
file = open(url, encoding="UTF-8")
text = file.read()
print(text)
file.close()
wangxinlei = list(text)
王鑫壘 = []
for i in wangxinlei:
num = 0
for j in wangxinlei:
if i==j:
num = num + 1
if i in 王鑫壘:
continue
王鑫壘.append(i)
print(i, '出現', num, '次')
函數
1. 定義一個函數打印如圖所示的三角形,行數由參數指定
def showSanjiao(n):
for i in range(n):
print(end=' '*(n-i))
print(end='* '*(i+1))
print('')
wangxinlie = int(input('輸入行數:'))
showSanjiao(wangxinlie)
2. 使用函數計算任意start月~end月的平均訪客量
def monthView(start, end):
month = [200, 388, 123, 456, 987, 342,
767, 234, 124, 345, 123, 234]
sum= 0
for i in range(start-1,end):
sum=month[i]+sum
return sum
while 1:
start=int(input("請輸入開始月份:"))
end=int(input("請輸入截止月份:"))
wangxinlie =monthView(start,end)
print(start,"月~",end,"月,用戶訪問量爲:",wangxinlie)
3. 使用可變長參數*parameter,接收任意幾個月份,求這幾個月份的平均訪客數
def monthAvrView(*p):
month = [200, 388, 123, 456, 987, 342,
767, 234, 124, 345, 123, 234]
sum = 0
num = 0
doc ={}
for e in p:
if e in [1,2,3,4,5,6,7,8,9,10,11,12]:
sum =month[e-1]+sum
num =num + 1
doc.update({e:month[e-1]})
if num==0:
print("沒有這些月份。。。")
return 0
else:
avr = sum / num
return doc,avr
doc,avr=monthAvrView(1,2,3,5)
print("每月訪問量:",doc,"平均訪問量:",avr)
4.使用可變長度的參數**parameter,接收學生的個人信息,每個人的信息內容不一定相同,和學號對應存儲,
函數聲明如下:
def student_information(stunumber,**stuinfo):
運行結果如下:
list={}
def student_information(stunumber,**stuinfo):
list.update({stunumber:stuinfo})
student_information(201234659,愛好="乒乓",籍貫='湖北',姓名='劉達')
student_information(202030186,籍貫="河北",姓名='劉達')
student_information(202030733,民族="苗",姓名='劉達')
print(list)
print(type("abc"))
面向對象
1. 創建狗類
數據成員包含但不限定於:品種、愛稱、年齡、性別。
方法成員包含但不限定於:喫。
創建兩個對象並調用方法進行測試。
定義一個列表,存儲狗對象
定義一個不屬於類的函數,在狗列表中查找某一品種的狗對象(如‘拉拉布拉多’等任意品種),並以列表的形式返回
對返回的列表進行遍歷,並輸出所有找到的狗的名字。
# 創建狗對象
class Dog():
def __init__(self, pinzhong=None, aicheng=None, age=None,sex=None):
self.pinzhong=pinzhong
self.aicheng=aicheng
self.age=age
self.sex=sex
def eat(self):
print(self.aicheng+"喫骨頭")
def print(self):
return self.pinzhong,self.aicheng,self.age,self.sex
# 按品種查找狗
def findByPinzhong(list,pinzhong):
dogs=[]
for i in list:
if i.pinzhong==pinzhong:
dogs.append(i)
return dogs
# 將狗狗名稱輸出
def showAichengByDogs(dogs):
aichengs=[]
for i in dogs:
aichengs.append(i.aicheng)
return aichengs
# 主函數
if __name__ == '__main__':
dog1 = Dog("拉拉布拉多", "小花", 2, "雌性")
dog2 = Dog("哈士奇", "小苗", 1, "雄性")
dog3 = Dog("哈士奇", "小白", 2, "雌性")
list = [dog1, dog2, dog3]
print('-'*20+'所有狗狗的信息'+'-'*20)
for i in list:
print(i.pinzhong,i.aicheng,i.age,i.sex)
pinzhong=input("請輸入要查找哪一品種的狗:")
dogs=findByPinzhong(list,pinzhong)
for i in showAichengByDogs(dogs):
print(i)
2. 定義一“圓”Cirlcle類
圓心爲“點”Point類,構造一圓,求圓的周長和麪積,創建多個圓對象,並能統計創建圓對象的個數。能夠判斷某點與圓的關係。
import math
class Cirlcle:
def __init__(self, r=None, point=None):
self.point=point
self.r=r
def zhouchang(self):
return float(2*3.14*self.r)
def mianji(self):
return float(self.r*self.r*3.14)
class Point:
def __init__(self, x=None, y=None):
self.x=x
self.y=y
def jisuand(p1,p2):
return math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y))
def guanxi(r,d):
if r>d:
print("點在圓內")
elif r==d:
print("點在圓上")
elif r<d:
print("點在圓外")
if __name__ == '__main__':
p1 = Point()
p1.x = int(input("請輸入圓的x座標"))
p1.y = int(input("請輸入圓的y座標"))
r = int(input("請輸入圓的半徑"))
c1 = Cirlcle(r,p1)
print("圓的面積爲:",c1.mianji())
print("圓的周長爲:", c1.zhouchang())
p2 = Point()
p2.x = int(input("請輸入判斷某點的x座標"))
p2.y = int(input("請輸入判斷某點的y座標"))
d = jisuand(c1.point,p2)
guanxi(c1.r,d)
3. 玩家(攻擊力)攻擊敵人,敵人(血量)受傷後還可能死亡。
class enemy:
def __init__(self, name, blood=0, attack=0):
self.name=name
self.blood=blood
self.attack=attack
@property
def blood(self):
return self.__blood
@blood.setter
def blood(self,blood):
if 0<=blood<=100:
self.__blood=blood
else:
raise Exception("血量數據超出範圍!!")
@property
def attack(self):
return self.__attack
@attack.setter
def attack(self, attack):
if 1 <= attack <= 50:
self.__attack = attack
else:
raise Exception("攻擊力數據超出範圍!!")
en1= enemy("dada",10,50)
print(en1.blood,en1.attack)
en2=enemy("aada",101,51)
4. 張無忌教趙敏九陽神功
趙敏教張無忌化妝
張無忌上班掙了10000元
趙敏上班掙了8000元
class person:
def __init__(self, name=None, skill=None, pay=None):
self.name= name
self.skill=skill
self.pay=pay
def teach(self,name):
print(self.name+"教"+name+self.skill)
def work(self):
print(self.name+"上班掙了"+str(self.pay)+"元")
p1 = person("張無忌","九陽神功",10000)
p2 = person("趙敏","化妝",8000)
p1.teach(p2.name)
p2.teach(p1.name)
p1.work()
p2.work()
注意:最後送大家一套2020最新企業Pyhon項目實戰視頻教程,點擊此處 免費獲取一起進步哦!