天天看点

Python基础练习之循环结构

3.	打印输出下面的图形(9行)
*
**
***
****
*****
******
*******
********
*********
           
#方法一:
str =  '*\n**\n***\n****\n*****\n******\n*******\n********\n*********'
print(str)
           
*
**
***
****
*****
******
*******
********
*********
           
#方法二:
for _ in range(1, 10):
    print("*" * _, end='\n')
           
*
**
***
****
*****
******
*******
********
*********


1)输入n,打印n行上面形状的图形
2)打印倒三角形
3)自己定义某种图形,进行打印
           
# 1)
for _ in range(1, eval(input("输入n:")) + 1):
    print("*" * _, end='\n')
           
输入n:9
*
**
***
****
*****
******
*******
********
*********
           
# 2)
for _ in range(eval(input("输入n:")), -1, -1):
    print("*" * _, end='\n')
           
输入n:9
*********
********
*******
******
*****
****
***
**
*
           

# 3)
n = eval(input("输入n:")) #输入行数
n = n + 1 if (n & 1) == 0 else n #输出菱形需要奇数行
tmp = n // 2 + 1 #最大宽度的一半,计算空格时所需
for _ in range(1, n + 1):
    print(" " * abs(tmp - _) + "*" * (n - abs(2 * _ - (n + 1))), end='\n')
           
输入n:6
   *
  ***
 *****
*******
 *****
  ***
   *


4.	打印九九乘法口诀表
           
Python基础练习之循环结构
for i in range(1, 10):
    for j in range(1, i + 1):
        print("{}*{}={}\t".format(j, i, i * j), end='')
    print()
           
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	


5.	有一张厚度为0.1毫米的纸,假设它足够大,重复将其对折,求对折多少次后,其厚度可以抵达(再对折一次就超过)珠穆朗玛峰的高度。(备注:珠峰高为8848180毫米。)
           
count = 0
while 0.1 * 2 ** count <= 8848180:
    count += 1
count - 1
           
26



6.	输入一个整数,判断它是否为素数(只能被1和它本身整除的数)
如果是,输出Yes,否则输出No
           
import math
import re

while True:
    n = input("输入一个整数:")
    if re.match("[1-9][0-9]*$", n) == None:
        continue
    else:
        n = eval(n)
        break

def isPrime(num):
    if num < 2:
        print("No")
        return
    for _ in range(2, int(math.sqrt(num)) + 1):
        if num % _ == 0:
            print("No")
            return
    print("Yes")
isPrime(n)
           
输入一个整数:234dsfs2324
输入一个整数:3224dfs
输入一个整数:123.123
输入一个整数:234
No


7.	输入一组工资值(如果小于0,重新输入),直到输入0结束。统计工资的平均值并输出。
           
lst = [] #存储有效值
while True:
    n = eval(input())
    while n < 0: #如果输入的数小于0,则重新输入并清空lst
        n = eval(input())
        list.clear(lst)
    if n == 0: #等于0退出
        break
    lst.append(n) #有效值加入lst
sum = 0
for _ in lst: #计算平均值
    sum += _
sum / len(lst)
           
1
-2
1
2
3
0



2.0