# 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
def four_number():
n = 0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i != j) and (i!=k) and (j!=k):
n += 1
# print(i,j,k)
print(n)
print(64-n)
# four_number()
# 输入某年某月某日,判断这一天是这一年的第几天?
import datetime
def ymd_days(y,m,d):
# months = (0,31,59,90,120,151,181,212,243,273,304,334)
# days = months[m-1]
# days += d
# if y%400 == 0 or y%4==0 and y%100 !=0:
# if m > 2:
# days +=1
days = (datetime.datetime(y,m,d)-datetime.datetime(y,1,1)).days
days += 1
print(days)
# ymd_days(2019,7,17)
# 输入三个整数x,y,z,请把这三个数由小到大输出。
def sort_three():
list1 = []
for i in range(3):
x = int(input("整数:"))
list1.append(x)
list1.sort()
print("从小到大输出:")
print(list1)
# sort_three()
# 斐波那契数列。
def faibo(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
print(a)
# faibo()
def faibo2(n):
if n == 1 or n == 2:
return 1
return faibo2(n-1)+faibo2(n-2)
# faibo2(6)
# 输出 9*9 乘法口诀表。
def n_n():
for i in range(1,10):
for j in range(1,i+1):
print("%s*%s=%s"%(j,i,i*j),end='\t')
print()
# n_n()
# 判断101-200之间有多少个素数,并输出所有素数。
def sushu(n):
for i in range(2,n):
if n % i == 0:
return 0
return n
def many_sushu():
s = 0
for i in range(100,200):
if sushu(i):
print(i)
s += 1
print(s)
# many_sushu()
# 打印出所有的"水仙花数"
def shui_xian():
for n in range(100,1000):
i = n//100
j = n//10%10
k = n%10
if n == i**3+j**3+k**3:
print(n)
# shui_xian()
# 将一个正整数分解质因数。
def fenjiezhi(n):
print("%s="%n,end='')
while True:
if sushu(n):
print(n)
break
for i in range(2,n):
if n % i ==0:
print(i,end='*')
n = n // i
break
# fenjiezhi(90)
# 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
def zifushu():
n = input("输入字符串:")
eng,num,space,others=0,0,0,0
for i in n:
if i.isalpha():
eng += 1
elif i.isdigit():
num += 1
elif i.isspace():
space += 1
else:
others += 1
print(eng,num,space,others)
# zifushu()
# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
def snum_nnum():
a = int(input("输入a的值:"))
n = int(input("相加n次:"))
Tn = 0
s = 0
for i in range(n):
Tn += a
s += a
a *= 10
print(s)
# snum_nnum()
# 一个数如果恰好等于它的因子之和,这个数就称为"完数"。找出1000以内的所有完数。
def wanshu():
for i in range(6,1001):
s = 0
if not sushu(i):
for j in range(1,i):
if i % j == 0:
s += j
if s == i:
print(i)
# wanshu()
# 打印出如下图案(菱形):
def lingxing(n):
for i in range(n+1):
print(" " * (n - i), end='')
print(" *"*(2*i-1))
for i in range(n-1):
print(" "*(i+1), end='')
print(" *"*(2*(n-i)-3))
# lingxing(6)
# 利用递归方法求5!。
def jiecheng(n):
if n == 1:
return 1
return n*jiecheng(n-1)
# print(jiecheng(5))
# 给一个n位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
def num_int(n):
n = str(n)
l = len(n)
print("该正整数为:%s位数"%l)
l -= 1
while l>=0:
print(n[l])
l -= 1
# num_int(4561348)
# 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
def huiwen(n):
n = str(n)
if n[0] == n[4] and n[1]==n[3]:
print("是回文数")
else:
print("不是回文数")
# huiwen(12321)
# 对10个数进行排序
# 冒泡排序
def maopao():
nums = [10,9,8,7,6,5,4,3,2,1]
n = len(nums)
for i in range(n-1):
for j in range(n-1-i):
if nums[j] > nums[j+1]:
nums[j+1],nums[j] = nums[j],nums[j+1]
print(nums)
print("排序完成")
print(nums)
# maopao()
# 选择排序
def paixue():
nums = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
n = len(nums)
for i in range(n-1):
for j in range(i,n):
if nums[i] > nums[j]:
nums[i],nums[j] = nums[j],nums[i]
print(nums)
print("排序完成")
print(nums)
# paixue()
# 将一个列表逆序输出。
def nishuzu():
nums = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
n = len(nums)
while n > 0:
print(nums[n-1],end=" ")
n -= 1
print()
print(nums)
# nishuzu()
# 打印出杨辉三角形 要求打印出10行
def yanghui():
a = list()
for i in range(10):
a.append([])
for j in range(10):
a[i].append(0)
for i in range(10):
a[i][0] = 1
a[i][i] = 1
for i in range(2,10):
for j in range(1,i):
a[i][j] = a[i-1][j-1] + a[i-1][j]
for i in range(10):
for j in range(i+1):
print(a[i][j],end='\t')
print()
# yanghui()
# 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
def baoshu3(n):
n = [i for i in range(1,n+1)]
i = 0
while len(n)!=1:
n.append(n[0])
del n[0]
i += 1
if i % 2 == 0:
print(n[0])
del n[0]
print(n)
# baoshu3(15)
# 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
def houzi_fentao():
i = 0
j = 1
s = 0
while i<5:
s = 4 * j
for i in range(5):
if s%4 != 0:
break
else:
i += 1
s = s/4*5 + 1
j += 1
print(s)
# houzi_fentao()
# 809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
def numbertwo_two():
for i in range(10,100):
if 80<=8*i<100 and 1000<=809*i and 9*i>100:
print(i)
print(809*i)
# numbertwo_two()
# 求0—7所能组成的奇数个数。
def jishu():
s = 4
i = 4
for j in range(1,8):
print("%s位数有%s个奇数"%(j,i))
if j <= 1:
i *= 7
else:
i *= 8
s += i
print("共有%s个"%s)
# jishu()
# 输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。
def number_nine(n):
s = 9
while s%n !=0:
s = str(s)
s = s[:]+'9'
s = int(s)
s = str(s)
l = len(s)
print("需要%s个9"%l)
# number_nine(11)
# 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
def jiami(n):
aa = list()
aa.append(n%10)
aa.append(n//10%10)
aa.append(n//100%10)
aa.append(n//1000)
aa.reverse()
print(aa)
for i in range(4):
aa[i] += 5
aa[i] %= 10
aa[0],aa[1],aa[2],aa[3]=aa[3],aa[2],aa[1],aa[0]
print(aa)
# jiami(1234)
python菜鸟100例精选
猜你喜欢
转载自blog.csdn.net/qq_43157273/article/details/96491073
今日推荐
周排行