Python編程彙總

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項,分別是部門同事投票、去年業績、年齡、在公司年份、競聘演講得分。評分規則如下:

  1. 部門同事投票,每一票得3分
  2. 業績得分,每拿業績200000,得一分
  3. 年齡,年齡每小一歲得2分
  4. 在公司年份,沒長一年得5分
  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項目實戰視頻教程,點擊此處 免費獲取一起進步哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章