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