break语句
# -*- coding: utf-8 -*-
"""
功能:采用for循环破解令狐大侠难题一完善 版
作者:cxf
日期:2021年11月11日
"""
print('令狐大侠说他喝了若干杯酒,\
杯数满足条件:三三数之剩二,\
五五数之剩三,七七数之剩二,\
问令狐大侠究竟喝了多少杯酒? ')
for cups in range(1, 100):
if cups % 3 == 2 and cups % 5 == 3 and cups % 7 == 2:
print('朋友,令狐大侠喝了{}杯酒! '.format(cups))
break
猜出一次就跳出循环
判断一个整数是否为素数
小知识:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
# -*- coding: utf-8 -*-
"""
# -*- coding: utf-8 -*-
"""
功能:判断一个整数是否为素数
作者:cxf
日期:2021年11月11日
"""
from math import sqrt
n = int(input('输入一个整数:'))
is_prine_number = True # 是素数
for i in range(2,int(sqrt(n)+ 1)):
if n % i == 0:
is_prine_number = False # 不是素数
break
if n == 1:
print('{}既不是素数,也不是合数。'.format(n))
elif is_prine_number:
print('{}是素数。'.format(n))
else:
print('{}是合数。'.format(n))
循环嵌套
打印字符矩形
# -*- coding: utf-8 -*-
"""
功能:打印字符矩形
作者:cxf
日期:2021年11月11日
"""
row = int(input('row = ')) # 行
col = int(input('col = ')) # 列
for i in range(row):
for j in range(col):
print('*',end = '')
print()
打印字符平行四边形
# -*- coding: utf-8 -*-
"""
功能:打印字符平行四边形
作者:cxf
日期:2021年11月11日
"""
row = int(input('row = ')) # 行
col = int(input('col = ')) # 列
# 右倾平行四边形
for i in range(row):
#打印前导空格
for i in range(row - i - 1):
print(' ', end='')
# 打印星号
for j in range(col):
print('*',end= '')
print()
# -*- coding: utf-8 -*-
"""
功能:打印字符平行四边形
作者:cxf
日期:2021年11月11日
"""
row = int(input('row = ')) # 行
col = int(input('col = ')) # 列
# 左倾平行四边形
for i in range(row):
#打印前导空格
for i in range(row + i):
print(' ', end='')
# 打印星号
for j in range(col):
print('*',end= '')
print()
# -*- coding: utf-8 -*-
"""
功能:打印字符平行四边形
作者:cxf
日期:2021年11月11日
"""
row = int(input('row = ')) # 行
col = int(input('col = ')) # 列
# 右倾平行四边形
for i in range(row):
#打印前导空格
for i in range(row - i - 1):
print(' ', end='')
# 打印星号
for j in range(col):
print('*',end= '')
print()
# 左倾平行四边形
for i in range(row):
#打印前导空格
for i in range( i):
print(' ', end='')
# 打印星号
for j in range(col):
print('*',end= '')
print()
直角三角形
# -*- coding: utf-8 -*-
"""
功能:打印字符直角三角形
作者:cxf
日期:2021年11月11日
"""
row = int(input('row = ')) # 行
for i in range(row):
#负责打印前导空格
for j in range(row - i -1):
print(' ',end= '')
# 负责打印星号
for j in range(i):
print('*', end='')
print()
打印九九乘法表
# -*- coding: utf-8 -*-
"""
功能:打印九九乘法表
作者:cxf
日期:2021年11月11日
"""
for i in range(1,10):
for j in range(1,i + 1):
print('{} x {} = {}'.format(i, j, i*j), end ='\t')
print()
百钱买百鸡
我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
需要定义三个整型变量cock, hen, chick,分别代表公鸡、母鸡和小鸡的购买数量。
有两方面的条件:关于钱的条件与关于鸡的条件
# -*- coding: utf-8 -*-
"""
功能:百钱买百鸡问题(采用三重循环)
作者:cxf
日期:2021年11月11日
"""
count = 0
for cock in range(21):
for hen in range(34):
for chick in range(101):
if cock + hen + chick == 100 and cock * 5 + hen * 3 + chick / 3 == 100:
print('cock:{}\t hen :{}\t chick :{}'.format(cock, hen ,chick))
count = count + 1
print("结论:总共有{}种购买方案。".format(count))
优化方案
# -*- coding: utf-8 -*-
"""
功能:百钱买百鸡问题
作者:cxf
日期:2021年11月11日
"""
count = 0
for cock in range(21):
for hen in range(34):
chick = 100 - cock - hen
if cock * 5 + hen * 3 + chick / 3 == 100:
print('cock:{:2d} hen :{:2d} chick :{:2d}'.format(cock, hen ,chick))
count = count + 1
print("结论:总共有{}种购买方案。".format(count))