0% found this document useful (0 votes)
59 views17 pages

Python编程汇总

Uploaded by

HS UF
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views17 pages

Python编程汇总

Uploaded by

HS UF
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

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项⽬实战视频教程, 免费获取⼀起进步哦!

You might also like