操千曲而后晓声,观万剑而后识器——————《文心雕龙》
什么意思?用人话来说就是程序员是练出来的,不是看出来的,更不是空想出来的。只要有足够的代码量,连小盆友都能接项目,下面就是分享的一些基础习题。
""" 三、循环语句 Demo37 """ import random key = int(random.randint(0,101)) print("请猜测一个0~100的数(n结束)") while True: num = input("你的猜测:") if num == "n": print("结束") break num = int(num) if num == key: key2 = input("恭喜你猜对了!再来一把?y/n\n") if key2 == "n": break else: if num < key: print("小了。") else: print("大了。")
""" 三、循环语句 Demo38 """ k = 1 flag = 0 print("找A , B 最大公约数:") num1 = int(input("A的值:")) num2 = int(input("B的值:")) if num1 > num2: num1,num2 = num2,num1 while k <= num1: if num1 % k == 0 or num2 % k ==0: flag = 1 ged = k k += 1 if flag == 1: print("A和B两数的最大公约数为:{}".format(ged)) else: print("A和B没有公约数。")
""" 三、循环语句 Demo39 """ import math import random num = 0 for i in range(1000000): x = random.random() * 2 - 1 y = random.random() * 2 - 1 if math.sqrt(x ** 2 + y ** 2) < 1: num += 1 print("PI为:", num * 4 / 1000000)
""" 三、循环语句 Demo40 """ num = float(input("请输入一个不为零的数:")) sum = 0 posi = 0 nega = 0 total = 0 while num != 0: sum += num if num < 0: nega += 1 else: posi += 1 total += 1 num = float(input("请输入一个不为零的数:")) print("正数:{}\n".format(posi)) print("负数:{}\n".format(nega)) print("总数:{}\n".format(total)) print("平均数值:{}\n".format(sum / total))
""" 三、循环语句 Demo41 """ num = int(input("请输入一个整数:")) if num < 2: print(" ", num, " \n") while num > 1: i = 2 while num % i != 0: i += 1 print("{} ".format(i),end=" ") num /= i
""" 三、循环语句 Demo42 """ num = int(input("请输入一个数:")) for i in range(1, num + 1): k = i for j in range(num - i): print(end = " ") for j in range(1, i * 2): if j == 1 or j == i * 2: print("{}".format(i),end=" ") else: if j <= i: k -= 1 print("{}".format(k),end=" ") else: k += 1 print("{}".format(k),end=" ") print("")
""" 三、循环语句 Demo43 """ #模式一 # num = int(input("行数:")) # for i in range(num): # for j in range(i + 1): # print(j+1,end=" ") # print("") #模式二 # num = int(input("行数:")) # for i in range(num , 0 , -1): # for j in range(i): # print(j+1,end=" ") # print("") #模式三 # num = int(input("行数:")) # for i in range(num): # for j in range(num - (i + 1)): # print(end =" ") # for j in range(i + 1 , 0,-1): # print(j , end = " ") # print("") #模式四 num = int(input("行数:")) for i in range(num , 0, -1): for j in range(num - (i)): print(end =" ") for j in range(i): print(j + 1, end = " ") print("")
""" 三、循环语句 Demo44 """ num = int(input("行数:")) for i in range(num): for j in range(num - i -1): print(end = " ") for j in range(i * 2 - 1): if j == 0 or j == i * 2 - 2: print("1", end = " ") else: if j < i: print(2 ** j, end = " ") else: print(2 ** (i - j + 1),end = " ") print("")
""" 三、循环语句 Demo45 """ k = 0 for i in range(2,1001): flag = 1 for j in range(2,i): if i % j == 0: flag = 0 break if flag == 1: if i < 10: print(i, end = " ") elif i < 100: print(i, end = " ") else: print(i, end = " ") k += 1 if k % 8 == 0 and k != 0: print("")
""" 三、循环语句 Demo46 """ # i = 10000 # i = 20000 i = 30000 PI = 0 sum = 0 for j in range(1 , i + 1): sum += (-1) ** (j + 1) / (2 * j - 1) PI = sum * 4 print(PI)
""" 三、循环语句 Demo47 """ i = 10 # i = 20000 #i = 100000 e = 1 for j in range(1 , i + 1): item = 1 for k in range(1 , j + 1): item /= k e += item print(e)
""" 三、循环语句 Demo48 """ for i in range(2, 10000): sum = 0 for j in range(1,i): if i % j == 0: sum += j if sum == i: print(i,end = " ")
""" 三、循环语句 Demo49 """ import random k = ["剪刀","石头","布"] print("=" * 53) print(" " * 14, "剪刀石头布三局两胜制:") print("=" * 53) i = 0 me = 0 it = 0 while True: print("当前你赢了",me,"次\n") print("当前电脑赢了",it,"次\n") i = int(input("(1)剪刀 (2)石头 (3)布:\n")) computer = k.index(random.choice(k)) print("计算机出",k[computer]) if i == computer + 1: print("平局!") else: if i == 1: if (computer + 1) == 2: print("电脑赢了这一把!") it += 1 else: print("你赢了这一把!") me += 1 elif i == 2: if (computer + 1) == 3: print("电脑赢了这一把!") it += 1 else: print("你赢了这一把!") me += 1 else: if (computer + 1) == 1: print("电脑赢了这一把!") it += 1 else: print("你赢了这一把!") me += 1 if me == 3 or it == 3: print("游戏结束!") if me == 3: print("胜利者是你") else: print("胜利者是电脑") break
""" 三、循环语句 Demo50 """ nums = [] max = 0 while True: num = int(input("输入一个数(0结束):")) nums.append(num) if num == 0: count = nums.count(max) break if max < num: max = num print("输入的数字中最大值为",max) print("输入的最大数字出现了",count,"次")
""" 三、循环语句 Demo51 """ bio = [] num = int(input("请输入一个十进制整数:")) while num > 0: bio += str(num % 2) num //= 2 bio.reverse() print("该数二进制表示为:") for i in range(len(bio)): print(bio[i],end="")
""" 三、循环语句 Demo52 """ six = [] num = int(input("请输入一个十进制整数:")) while num > 0: six += str(num % 16) num //= 16 six.reverse() print("该数16进制表示为:") for i in range(len(six)): print(six[i],end="")
""" 三、循环语句 Demo 53 """ import math import random #为了减少错误用自定义函数 ##求三角形面积 #已知3为(0,0) (1,0) (0,1) def s(ax,ay,bx,by,cx,cy): area = abs((ax * (by - cy) + bx * (cy - ay) + cx * (ay - by)) / 2.0) return area s0 = s(0,0,1,0,0,1) num = 0 for i in range(1000000): x = random.random() * 2 - 1 y = random.random() * 2 - 1 s1 = s(x,y,0,0,1,0) s2 = s(x,y,0,0,0,1) s3 = s(x,y,1,0,0,1) if x <= 0: num += 1 if (s1 + s2 + s3) == s0: num +=1 print("落到奇数区域概率为:", num / 1000000)
""" 三、循环语句 Demo54 """ k = 0 for i in range(2001,2100): if i % 400 == 0 or (i % 4 == 0 and i % 100 != 0): print(i,end=" ") k += 1 if k % 10 == 0 and k != 0: print("")