Python练习(1)

if练习:

1.判断一个年份是不是闰年。
闰年为年份能被400整除,或能被4整除但不能被100整除

		year = int(input('Year:'))
		if (year % 4 == 0 and year %100 !=0) or (year %400 == 0):
			    print('%d是闰年' %(year))
		else:
			    print('%d不是闰年' %(year))

测试:
在这里插入图片描述
在这里插入图片描述
2.随机选择一个三位以内的数字作为答案。用户输入一个数字,系统判断大了还是小了。

	import random
	num = random.randint(0,999)
	num1=int(input('请输入一个数字:'))
	if num > num1:
		print('你输入的数字小了')
	elif num == num1:
		print('恭喜你猜对了')
	else:
		print('你输入的数字大了')

测试:
在这里插入图片描述
在这里插入图片描述

输入输出练习

求平均成绩
输入学生姓名;
依次输入学生的三门科目成绩;(语文 数学 英语)
计算该学生的平均成绩, 并打印;
平均成绩保留一位小数点;
计算该学生语文成绩占总成绩的百分之多少?并打印。eg: 78%;

	#_*_coding:utf-8_*_
	name = input('请输入学生姓名:')
	Chinese = float(input('语文成绩:'))
	Math = float(input('数学成绩:'))
	English = float(input('英语成绩:'))
	total = Chinese + Math + English
	aver = total/3
	print('平均成绩为%.1f' %(aver))
	print('%s的语文成绩占总成绩的%.2f%%' %(name,(Chinese/total)*100))

测试:
在这里插入图片描述

综合练习

  1. 输入年、月,输出本月有多少天。
    输入样例1:2004 2
    输出结果1:本月29天
    输入样例2:2010 4
    输出结果2:本月30天

     #_*_coding:utf-8_*_
     D,M = map(int,input().split())			###一次赋值俩个
     a = int(D) % 4
     b = int(D) % 100
     c = int(D) % 400
     if ( a==0 and b !=0 and M==2 ) or (c==0 and M==2):
     	print('本月29天')
     elif (M==2):
     	print('本月28天')
     elif (M==1 or M==3 or M== 5 or M==7 or M==8 or M==10 or M==12):
     	print('本月31天')
     else:
     	print('本月30天')
    

在这里插入图片描述

2.根据用于指定月份,打印该月份所属的季节。
提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季。

		m = int(input('请输入想要指定的月份:'))
		if m == 3 or m == 4 or m == 5:
			print('春季')
		elif m==6 or m==7 or m==8:
			print('夏季')
		elif m==9 or m==10 or m==11:
			print('秋季')
		else:
			print('冬季')

在这里插入图片描述

循环练习

输入俩个数,显示出他们的最小公倍数和最大公约数。
最小公倍数=(num1*num2)/最大公约数。

		num1 = int(input('Num1:'))
		num2 = int(input('Num2:'))
		min_num = min(num1, num2)		##最大公约数肯定小于俩个数中最小的一个数
		for i in range(1, min_num + 1):
			if num1 % i == 0 and num2 % i == 0:
    				a = i
		b = int(num1*num2/a)
		print('%s和%s的最大公约数是:%s' %(num1,num2,a))
		print('%s和%s的最小公倍数是:%s' %(num1,num2,b))

在这里插入图片描述

字符串的练习

  1. 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,
    单词用空格分割, 单词之间只有一个空格,前>后没有空格。
    比如: (1) “hello xiao mi”-> “mi xiao hello”

     	  s = input('请输入句子:')
     	  print(' '.join(s.split()[::-1]))
     		先将 s 以空格分离,后反转,再以空格连接
    

在这里插入图片描述

变量名定义是否合法:
1.变量名可以由字母 数字 下划线组成
2.变量名只能以字母或者下划线开头

	s = input('变量名:')
	if s[0].isalpha() or s[0] == '_':
    		for i in s[1:]:
      			if not (i.isalnum() or i == '_'):
          				print('%s变量名不合法' %(s))
          				break
    			else:
        				print('%s变量名合法' %(s))
	else:
    		print('%s变量名不合法' %(s))

测试:
在这里插入图片描述
在这里插入图片描述

综合练习

  1. 设计一个程序,帮助小学生练习10以内的加法
    随机生成加法题目
    学生查看题目并输入答案
    判别学生答题是否正确
    退出时, 统计学生答题总数,正确数量及正确率(保留两位小数点)

     	import random
     	i = 0			### i 记录错题
     	j = 0			### j 记录正确的题
     	while True:					###  永久循环,可以一直做题
     		NUM1 = random.randint(1,10)			### 取随机数字
     		NUM2 = random.randint(1,10)
     		answer = input('题目:%d+%d=' %(NUM1,NUM2))
     		if answer == 'exit':
     				break
     		elif answer != str(NUM1+NUM2):		
     	## 使用str是因为Input的类型为字符串型,不能更改为Int型,因为还包含exit
     				i += 1
     				print('回答错误!')
     		else:
     				j += 1
     				print('回答正确!')
     	per = j/(i+j)
     	print('答题总数为%d' %(i+j))
     	print('正确数量:%d' %(j))
     	print('正确率为%.2f%%' %(per * 100))
    

测试:
在这里插入图片描述

  1. 设计一个程序,用来实现帮助小学生进行百以内的算术练习
    它具有以下功能:提供10道加、减、乘或除四种基本算术运算的题目
    练习者根据显示的题目输入自己的答案
    程序自动判断输入的答案是否正确并显示出相应的信息。

     import random
     count = 0
     right = 0
     op = ['+','-','*','/']
     for i in range(0,10):
     		a = random.randint(0,99)
     		b = random.randint(0,99)
     		s = random.choice(op)
     		print('题目为:%d%s%d=' %(a,s,b))
     		answer = input('请输入答案(exit退出答题):')
     		if s == '+':
     			result = a+b
     		elif s == '-':
     			result = a-b
     		elif s == '*':
     			result = a*b
     		else:
     			result = a/b
     		if answer == 'exit':
     			break
     		elif answer == str(result):
     			print('答案正确')
     			right += 1
     			count += 1
     		else:
     			count += 1
     			print('答案错误')
     per = right / count
     print('答题总数为%d' %(count))
     print('正确数量:%d' %(right))
     print('争取率为:%.2f%%' %(per))
    

测试:
在这里插入图片描述

列表的练习

1.乘法表的四种排列方式

	for i in range(1,10):
			for I in range(1,i+1):
    				print('%d * %d = %d\t' %(i,I,i * I),end='')
			print('')

在这里插入图片描述

	for i in range(1,10):
    	for a in range(1,i):
	    	print(end="            ")				### 十二个空格
		for I in range(i,10):
    		print('%d * %d = %d\t' %(i,I,i * I),end='')
	print('')

在这里插入图片描述

	for i in range(1,10):
			for I in range(i,10):
    			print('%d * %d = %d\t' %(i,I,i * I),end='')
	print('')

在这里插入图片描述

	for i in range(1,10):
			for a in range(1,10-i):
    				print(end="            ")			###十二个空格
			for I in range(1,i+1):
    				print('%d * %d = %d\t' %(i,I,i * I),end='')
	print('')

在这里插入图片描述

2.输入某年某月某日(yyyy-MM-dd),
判断这一天是这一年的第几天

		cal = input('请输入日期 yyyy-MM-dd: ')
		date = cal.split('-') 
		year = int(date[0])
		month = int(date[1])			###需要拆分日期考虑闰年及2月的特殊情况
		day = int(date[2])
		arr = [0,31,28,31,30,31,30,31,31,30,31,30,31]
		num = 0
		if ((year % 4 ==0) and (year % 100 !=0) or (year % 400 ==0)):
				arr[2] = 29
		for i in range(1,len(arr)):
				if month > i:
    				num += arr[i]
				else:
    				num += day
    				break
		print('在这一年中的天数:',num)

测试:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值