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项,分别是部门同事投票、去年业绩、年龄、在公司年份、竞聘演讲得分。评分规则如下:
- 部门同事投票,每一票得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项目实战视频教程,点击此处 免费获取一起进步哦!