一、判断以下哪些不能作为标识符
A、a
B、¥a
C、_12
D、$a@12
E、false
F、False
二、有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
nums= []
for i in range(9999,1001,-1):
g=i%10
s=6
b=3
q=i//1000
n=g+s*10+b*100+q*1000
if n%2==0 and n%3==0:
nums.append(n)
print(f"最大值:{max(nums)}")
print(f"最小值:{min(nums)}")
三、编程求一个四位自然数ABCD,它乘以A后变成DCBA
for i in range(1000,9999,1):
g=(i%1000)%100%10
s=(i%1000)%100//10
b=i%1000//100
q=i//1000
n=g*1000+s*100+b*10+q
if i*q==n:
print(i,"*",q,"=",n)
四、用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b。
a =int(input("输入数a: "))
b =int(input("输入数b: "))
if b%a==0 or a+b>1000:
print(a)
else:
print(b)
五、请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些
#判断奇偶进阶
n =int(input("输入一个数:"))
if n%2==0:
print("是偶数,1到该数是3的倍数都有")
for i in range(n):
if i%3==0:
print(i)
else:
print("是奇数,1到该数是5的倍数都有")
for i in range(n):
if i%5==0:
print(i)
六、输入三边的长度,求三角形的面积和周长(海伦公式)
import math
a =float(input("输入数a: "))
b =float(input("输入数b: "))
c =float(input("输入数a: "))
while a+b<c or a+c<b or b+c<a:
print("三角形不成立")
a =float(input("输入数a: "))
b =float(input("输入数b: "))
c =float(input("输入数a: "))
p = (a+b+c)/2
s = math.sqrt(p*(p-a)*(p-b)*(p-c))
print("三角形的面积是",s)
print("三角形的周长是",p*2)
七、鸡兔同笼 ,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?
a =int(input("输入头数a: "))
b =int(input("输入脚数b: "))
t=(b-(a*2))//2
j=a-t
print("鸡的数量",j)
print("兔的数量",t)
八、猜数字,random
import random
print("猜数字游戏:")
m = random.randint(1,10)
while True:
n =int(input("请输入你猜测的数字:"))
if n < m :
print("数小了")
elif n > m :
print("数大了")
else :
print("恭喜您猜对了")
break
九、猜拳游戏
import random
print("石头、剪刀、布的游戏")
#m=random.randint(1,3)
list =[1,2,3]
m=random.choice(list)
n =int(input("请输入你的选择:"
"石头:1,"
"剪刀:2,"
"布:3\n"))
if n!=1 or n!=2 or n!=3:
print("请输入1,2,3")
n =int(input("请输入你的选择:"
"石头:1,"
"剪刀:2,"
"布:3\n"))
print("计算机选择的是:",m)
if m==n:
print("平局")
elif m!=n:
if m-n==1:
print("你赢了")
else:
print("你输了")
十、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
def check(num):
count = 0
back_num =num
while num!=0:
temp =num%10
num//=10
count+=temp
if(back_num-count)%9==0:
return True
else:
return False
print(check(102354))
十一、判断单个数是否为质数
#单个
def num_put(n):
flag=True
if n==0 or n== 1:
print(f"{n}不是质数也不是合数")
return 0
for i in range(2,n//2+1):
if n%(i)==0:
flag=False
break
if flag :
print(f"{n}是质数")
else:
print(f"{n}是合数")
num_put(11)
十二、判断范围内的质数
#范围
def num_puts(x,y):
print("其中的质数都有:")
count=[]
for j in range(x,y):
flag=True
if j==0 or j== 1:
flag=False
for i in range(2,j//2+1):
if j%(i)==0:
flag=False
break
if flag==True :
count.append(j)
print(count)
num_puts(50,100)
十三、计算1-y的质数和
def num_puts(y):
print("其中的质数都有:")
count=[]
for j in range(1,y):
flag=True
if j==0 or j== 1:
flag=False
for i in range(2,j//2+1):
if j%(i)==0:
flag=False
break
if flag==True :
count.append(j)
print(count)
sum=0
for i in count:
sum+=i
print("1-y的质数和",sum)
num_puts(100)
十四、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
def num_puts(x,y):
print("其中的质数都有:")
count=[]
for j in range(x,y):
flag=True
if j==0 or j== 1:
flag=False
for i in range(2,j//2+1):
if j%(i)==0:
flag=False
break
if flag :
count.append(j)
else:
pass
print(count)
print("其中的孪生数都有:")
i=1
while i<len(count):
if count[i]-count[i-1]==2:
print(str({count[i],count[i-1]}))
i+=1
num_puts(0,100)
十五、水仙花
list1 = []
for a in range(100, 1000):
if (a % 10) ** 3 + (a // 10 % 10) ** 3 + (a // 100) ** 3 == a:
list1.append(a)
print(list1)
十六、一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
for i in range(10000,100000):
A=i*10+7
B=700000+i
if B/A==5:
print(i)
十七、取硬币,有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]
coin=[10, 8, 5, 3, 27, 99]
x=0
for i in coin:
if i%2==0:
x+=i//2
else:
x+=i//2+1
print("最少%s"%(x)+"次可以拿完硬币")
十八、十进制转换为二进制,并统计1的数量
def change(num):
count=[]
while num!=0:
temp = num%2
num //= 2
count.append(temp)
count.reverse()
print("二进制结果:",count)
x=0
for i in count:
if i==1:
x+=1
print("其中1的数量:",x)
change(9)
十九、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
pi = 0
N = 100
for k in range(N):
pi += 1/pow(16,k)*( \
4/(8*k+1) - 2/(8*k+4) - \
1/(8*k+5) - 1/(8*k+6))
print("圆周率值为:{}".format(pi))
二十、给数列排序
list=[9,2,3,1,4,6,5,7,8,0]
def section_sort1(list):
n = len(list)
# 定义外围循环次数
for j in range(n - 1):
# 定义min_index最小值的索引为j,目的找出最小值
min_index = j
# cur下标移动的范围,比较次数的范围限定
for i in range(j + 1, n):
# 元素比较,找出最小的值对应的索引
if list[i] < list[min_index]:
# 移动到最小元素的位置
min_index = i
# 保证最新的min_index不在无序队列的首位,那么就将它和无序队列的首位替换
if min_index != j:
list[j], list[min_index] = list[min_index], list[j]
print(list)
section_sort1(list)
print("排序后:",list)
二十一、合并两个有序数组,合并后还是有序列表
list1=[0,1,2,3,8]
list2=[3,6,7,8,9]
list=[]
while list1 and list2:
if list1[0]<list2[0]:
list.append(list1[0])
list1.remove(list1[0])
else:
list.append(list2[0])
list2.remove(list2[0])
for i in list2:
list.append(i)
print("排序后:",list)
二十二、求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
n=input()
count =int(input("个数"))
a=[]
b=0
for i in range(1,count+1):
a.append(n*i)
b+=int(n*i)
print('+'.join(a),"=",b)
二十三、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
import random
list=[random.randint(0,100)for i in range(10)]
print(list)
list1=[]
list2=[]
for i in list:
if i%2==0:
list1.append(i)
else:
list2.append(i)
list1.extend(list2)
print(list1)
二十四、给定一个数组,已知数组中的元素都是成对出现, 现在数组中只有一个元素没有成对,请找出这个元素。 [1,3,1,2,2,8,8]
list=[1,3,1,2,2,8,8]
dict={}
for i in list:
dict.setdefault(i,0)
dict[i]+=1
for j in list:
if dict[j]==1:
print(f'{j}')
print(list)
思考:
爬楼梯问题
汉诺塔
不死兔子等等
某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),问题:共有多少种走法?5行八列