1 编程题

1,python里允许多重赋值

d,f=0,0
a, b = min(a, b), max(a, b)

2,if_elif,round()四舍五入
math.gcd()最大公约数函数

3,print会自动换行,不换行需要end

for i in range(3):
    n = 2
    print("%d * %d = %d" % (i, n, i * n), end=' ')
	
	
	     print("%d*%d=%d" %(j, i, j * i), end=" ")
            print("%d*%d=%d" %(i, i, i * i),end="\n")

4,

//def定义函数
def jc(n):
    sum=1
    for i in range(1,n+1):
        sum*=i
    return sum
 
error=float(input())
sum,i=0,0
while (1/jc(i))>error:
    sum+=1/jc(i)
    i+=1
sum+=1/jc(i)
print("%.6f"%sum)

5,列表

while 1:
    l=[int(num) for num in input().split()]
    #这一行从用户输入中读取一行数据,使用 split() 方法
    # 将其分割成多个字符串,然后将这些字符串转换为整数,存储在列表 l 中。
    sum=0
    if l[0]==0 : break
    # 没有括号没有分号,有一个冒号
    else:
        for i in l:
            #遍历列表l中的每一个元素
            sum+=int(i)
    print(sum-l[0])

6,判断开根号后是否为整数

math.floor(math.sqrt(n)) == math.ceil(math.sqrt(n))

7,控制组数

while n > 0:
  
    n -= 1
	
	#或者

n=int(input())
while 1:
    try:
     a,b=map(int,input().split())
     print(a+b)
    except:
      break

8,水仙数

def shuixian(n, x):
    #n表示检查数字,x表示数字位数
    m = n
    sum = 0

    while m > 0:
        ans = 1
        for i in range(x):
            ans *= m % 10
        m //= 10
		#不能写成m//10
        #m整除10,去掉最后一位
        sum += ans
    if sum == n:
        return 1
    return 0


n = int(input())
for i in range(10 ** (n - 1), 10 ** n):
    #**表示幂运算,这里表示十的多少次方;
    if shuixian(i, n) == 1:
        print(i)

9,冒泡排序

n=int(input())
while n>0:
    l=[int(num) for num in input().split()]
    del l[0]#删除列表 l 的第一个元素。
    cut=0
    for i in range(len(l)-1):
        for j in range(len(l)-i-1):
            if l[j]>l[j+1]:
                l[j],l[j+1]=l[j+1],l[j]
                #不同于其他语言的一个交换
                cut+=1
    print(cut)
    n-=1

2 判断

3 单选

Python 中,for 和 while 可以有 else 语句

4 填空

posted on 2024-11-01 17:37  Hoshino1  阅读(3)  评论(0编辑  收藏  举报