版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/plychoz/article/details/86320783
Day1
输出九九乘法表
print('九九乘法表')
for i in range(1, 10): # i表示行
for j in range(1, i+1): # j表示列
if i == j:
print('%d✖️%d = %-2d\t' % (j, i, j * i))
else:
print('%d✖️%d = %-2d\t' % (j, i, j * i), end='')
print('九九乘法表')
for i in range(1, 10): # i表示行
for j in range(1, i + 1): # j表示列
print('%d✖️%d = %-2d\t' % (j, i, j * i), end='')
print()
练习1
用while...else...语句编写一个程序,判断输入数字是奇数还是偶数。
data = input('请输入一个数字:')
while True:
if not data.isdigit():
data = input('输入有误,请重新输入一个数字:')
else:
data = int(data)
print('输入数字是奇数') if data % 2 == 1 else print('输入数字是偶数')
break
练习2
1. 百钱买百鸡
假如你手上有100块钱,你需要买100只鸡。这个时候你去市场上,发现鸡有三种:母鸡3元一只,公鸡1元一只,小鸡0.5元一只,现在请问你有多少种买法可以把钱花完?
思路:根据题目不难想到,母鸡最多可以买33只(i),公鸡最多可以买100只(j),而小鸡最多也只能买100只(k)(因为只需要买100只鸡)。
只要三个鸡的数量(变量)能满足共100只(之和为100),并且满足花完100元(乘积之和为100),那么这就算是一种方法。令一个变量numb在打印出一种方法后自增+1,那么,最终打印numb的值即为方法的个数。
x+y+z=100
3x+y+0.5z=100
x\y\z是整数
所以,x=x, y=100-5x, z=4x, 且全是整数,x范围0-33
money = 100
children_num = 100
child_female = 3
child_male = 1
child_baby = 0.5
num = 0
for x in range(0,int(children_num/child_female)+1):
y = children_num - 5*num
z = 4*num
if isinstance(y, int) and isinstance(z, int) and y>=0 and z>=0:
num += 1
print(x, y ,z)
print('方法数:%d' % num)
练习3
题目描述:
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
示例1:
输入:hello world
输出:5
my_str = input('请输入一个字符串,单词以空格隔开:')
n = -1
length = 0
#最后一个字符是空格时,特殊处理
while True:
if my_str[n] == ' ' and length == 0:
n -= 1
elif my_str[n] == ' ':
print('最后一个单词长度:%d' % length)
break
else:
n -= 1
length +=1
练习4
比较两个列表中的元素,找出不相同的元素并保存在列表3中
list1 = [1,2,3,4,5,2,3]
list2 = [3,4,5,6,7,8,3,1,0]
set1 = set(list1)
set2 = set(list2)
set_u = set1 | set2 #并集
set_i = set1 & set2 #交集
set_d = set_u - set_i #差集
list3 = list(set_d)
print(list3)
练习5
遍历列表 ,并找出索引为奇数的元素
my_list = [1,2,3,4,5,6,7,8,9]
for i in range(1,len(my_list),2):
print(my_list[i])
Day2
练习1
定义一个函数,输入不定个数的数字,返回所有数字的和。
def func_sum(*args):
# result = 0
# for i in args:
# result += i
result = sum(args)
return result
print(func_sum(1,2,3,4,5))
练习2
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
def reciprocal(x):
return 1/x
def test(n):
while not n.isdigit():
n = input('输入有误,请输入一个数字:')
n = int(n)
if n%2 ==0:
L = range(2,int(n)+1, 2)
else:
L = range(1, int(n)+1, 2)
m = map(reciprocal, L)
return (sum(m))
num = input("请输入一个数字:")
print(test(num))
练习3
有如下值列表[11, 22, 33, 44, 55, 66, 77, 88, 99, 100.110, 200, 230, 330],
将所有大于66的值保存至字典的第一个key中,将等于小于66的值保存至第二个key中
即:{'k1': 大于66, 'k2': 小于等于66}
value = [11, 22, 33, 44, 55, 66, 77, 88, 99, 100.110, 200, 230, 330]
str1 = ''
str2 = ''
for i in value:
if i > 66:
if str1 == '':
str1 = str(i)
else:
str1 = str1 + ', ' + str(i)
else:
if str2 == '':
str2 = str(i)
else:
str2 = str2 + ', ' + str(i)
my_dict = {str1: '大于66', str2: '小于等于66'}
print(my_dict)