文章目录
- 前言
- 一、编写Python程序,实现判断变量x是奇数还是偶数
- 二、改写第一题,变量x需要从pyhton 控制台输入,然后判断x是奇数还是偶数,并且需要将这一过程放到循环中,这样可以不断输入要判断的值,直到输入end退出循环,输入过程如图:
- 三、编写一个Java程序(这里使用Python进行),使用循环打印一个菱形,菱形要求(*)打印,菱形的行数需要从控制台输入,行数必须是奇数
- (1)第一次尝试
- (2)第二次尝试
- (3)第三次尝试
- 总结
前言
结合前三篇文章,自己做的几个练习题,主要涉及循环与if条件,以及如何打印菱形,本文重点使用了三种方式打印菱形
一、编写Python程序,实现判断变量x是奇数还是偶数
x=int(input('请输入一个数:'))#因为input输入的默认是字符串,因此这里使用了int转化为整数
if x%2==0:#取余,余数等于0,为偶数,余数等于1,为奇数
print('x是偶数')
else:
print('x是奇数')
二、改写第一题,变量x需要从pyhton 控制台输入,然后判断x是奇数还是偶数,并且需要将这一过程放到循环中,这样可以不断输入要判断的值,直到输入end退出循环,输入过程如图:
while True:
x=input('请输入一个数:')
if x=='end':
break;
elif int(x)%2==0:
print('x','是偶数')
else:
print('x','是奇数')
输出结果:
请输入一个数:5
5 是奇数
请输入一个数:6
6 是偶数
请输入一个数:7
7 是奇数
请输入一个数:end
三、编写一个Java程序(这里使用Python进行),使用循环打印一个菱形,菱形要求(*)打印,菱形的行数需要从控制台输入,行数必须是奇数
这个题方法比较多,对于一个新学的我来说着实费了一番功夫,最终尝试了三种方式进行打印。
(1)第一次尝试
这是我第一次进行计算,思路就是不就是两列数嘛,就是找行号与每行星星的关系、行和和空格数的关系
上半部分是比较好找的,星星就是1、3、5、7、9……
主要是下半部分:由于一开始我的想法比较简单,就是找行数和星星数的关系
于是,以11为例,
7,9
8,7
9,5
10,3
11,1
就是找这两个关系,首先我看到,两列的和是递减的,符合循环的思路,于是这个题就这样硬算出来了
#方法以:就硬算
x=int(input('请输入一个奇数:'))
s=x//2+1
y=0
for i in range(1,x+1):
if i <=s:
print(' '*(s-i),'*'*(2*i-1))
else:
y=y+1
print(' '*(i-s),'*'*(x+s-y-i))
输出结果:
请输入一个奇数:11
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
请输入一个奇数:5
*
***
*****
***
*
(2)第二次尝试
但是毫无疑问,这个代码写出来我自己都觉得恶心,太丑了,而且这个逻辑太复杂了,于是我进行了进一步的优化。
x=int(input('请输入一个奇数:'))
meddle=x//2+1
for i in range(1,meddle+1):
print(' '*(meddle-i),'*'*(2*i-1))
j=meddle
while j>=1:
print(' '*(meddle-j),'*'*(2*j-1))
j-=1
优化之后的上半部分没有变化,主要在下半部分,采用while循环,因为以11为例,第7行,需要一个右移1空格,8行两个,9行3个,正好是meddle-j(如果令J=meddle,每次循环递减,空格数正好的是meddle-J)
输出结果:
请输入一个奇数:11
*
***
*****
*******
*********
***********
***********
*********
*******
*****
***
*
请输入一个奇数:5
*
***
*****
*****
***
*
(3)第三次尝试
第三种方式就比较简单了,这个题给我的困扰就是空格数的计算和星星的计算,如何居中的问题,但是第三种就比较简单了,直接采用字符串的方法让他居中。
x=int(input('请输入一个奇数:'))
meddle=x//2+1
for i in range(1,meddle+1):
print(('*'*(2*i-1)).center(x))
j=meddle
while j>=1:
print(('*'*(2*j-1)).center(x))
j-=1
采用字符串的center方法,直接进行居中,我们就不用考虑空格的问题了
输出结果:
请输入一个奇数:7
*
***
*****
*******
*******
*****
***
*
总结
主要针对if条件语句和循环语句进行实战练习,主要是利用Python如何打印菱形的若干中方法。