大家好,欢迎来到IT知识分享网。
下面整理了20个简单的python代码练习,供大家学习交流使用,轻易上手,复制下来就能用!!!
废话不多说,直奔主题
1.输入一个不超过5位的正整数,输出其逆数。例如输入12345,输出应为54321。
a = input('请输入一个不超过5位的正整数:') print('其逆数为:', a[::-1])
注:该代码使用了列表的切片和反转操作,首先将这个数的每个位上的数字存储到一个列表中,然后通过列表的反转来得到逆数。
2.计算1+2+3+4+……+n的值,n是从键盘输入的自然数:
n = int(input('请输入一个自然数:')) add = 0 for i in range(1, n + 1): add = add + i print('1+2+3+4+……+n的值为:', add)
3.辆卡车违反交通规则,撞⼈后逃跑。现场有三⼈⽬击事件,但都没有记住车号,只记下车号的⼀些特征。 甲说:牌照的前两位数字是相同的;⼄说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是⼀个整数的平⽅。请根据以上线索找出车号。
lst = [] for i in range(1000, 10000): if (i // 1000 == (i % 1000) // 100) and ((i % 100) // 10 == i % 10): lst.append(i) for i in lst: for j in range(33, 99): if i == j * j: print(i)
注:这个题目的核心就是找一个满足以下条件的四位数:1.千位和百位相同;2.十位和个位相同;3.这个数是一个整数的平方。
4.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?
lst = [] for i in range(100, 1000): if i % 10 == 6 and i % 3 == 0 and i % 5 != 0: lst.append(i) print('共有' + str(len(lst)) + '个, 分别是:') for i in lst: print(i)
注:整除可以通过对数字取模(求余)来得到,当取模的值为0时,那么便是可以被整除的。
5.输入某三角形的三个边的长度,判断出这是什么三角形(等腰、等边、任意、或不能构成)
a, b, c = map(int, input('请输入三条边的长度:').split()) if a == b == c: print('等边三角形') elif a == b or b == c or a == c: print('等腰三角形') elif a + b > c and a + c > b and b + c > a: print('任意三角形') else: print('不能构成三角形')
6.输入10个数,分别统计其中正数、负数、零的个数,并求出这10个数的和、平均值。
lst = list(map(int, input('请输入10个数:').split())) lst2 = [] lst3 = [] for i in lst: if i > 0: lst2.append(i) elif i < 0: lst3.append(i) print('正数的个数为:', len(lst2)) print('负数的个数为:', len(lst3)) print('零的个数为:', 10 - len(lst2) - len(lst3)) sum = 0 for i in lst: sum = sum + i print('这10个数的和为:', sum) print('这10个数的平均值为:', sum // 10)
7.先随机产生N个三位自然数输出,然后再输出其中同时是3,5,7的倍数的数。设N为100
import random N = 100 lst = [] print('随机自然数') for i in range(N): lst.append(random.randint(100, 999)) print(random.randint(100, 999)) print('同时是3、5、7的倍数') for i in lst: # 第一种方法: # if i % 3 == 0 and i % 5 == 0 and i % 7 == 0: # print(i) # 第二种方法 for j in [3, 5, 7]: if i % j != 0: break else: print(i)
8.找出100~200中的完全平方数
for i in range(100, 201): if (i 0.5) % 1 == 0: print(i)
注:完全平方数表示这个数是一个整数的平方,比如100是10的平方,我们称100为平方数。
9.随机产生N个大写字母输出,然后统计其中共有多少个元音字符。设N为200
def generate_uppercase_letters(n): vowels = ['A', 'E', 'I', 'O', 'U'] count_vowels = 0 letters = [random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ') for _ in range(n)] for letter in letters: if letter in vowels: count_vowels += 1 return letters, count_vowels N = 200 letters, count_vowels = generate_uppercase_letters(N) print(f"随机生成的大写字母: {letters}") print(f"元音字符的数量: {count_vowels}")
10.百钱百鸡问题:百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?
for a in range(1, 100): for b in range(1, 100 - a + 1): for c in range(1, 100 - a - b + 1): if a + b + c == 100 and 3 * a + 2 * b + c / 3 == 100: print(f"鸡翁:{a},鸡母:{b},鸡雏:{c}")
注:这个题目的输出结果中并非只有一个答案,这是因为这个题目有多种购买方式,都可以满足题目条件,为开放性答案。
11.计算:1/2+1/4+……+1/n,设n是由键盘输入的正偶数
n = int(input('请输入一个正偶数:')) if n % 2 == 0 and n > 0: add = 0 for i in range(2, n + 1, 2): add = add + 1 / i print('计算结果为:', add) else: print('输入错误,请输入一个正偶数!')
12.计算: 1/2-2/3+3/4——4/5……前一百项
def every(n): re = (-1) (n + 1) * n / (n + 1) return re add = 0 for i in range(1, 101): add = add + every(i) print('计算结果为:', add)
13.从终端输入3个数a、b、c,按从大到小的顺序输出
a, b, c = map(int, input('请输入三个数:').split()) lst = sorted([a, b, c], reverse=True) for i in lst: print(i)
14.公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说:“乙没有偷,是丁偷的”, 乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。
lst5 = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] lst = [] for i in lst5: if (i[1] == 0 and i[3] == 1) or (i[1] == 1 and i[3] == 0): if (i[1] == 0 and i[2] == 1) or (i[1] == 1 and i[2] == 0): if (i[0] == 0 and i[1] == 1) or (i[0] == 1 and i[1] == 0): lst = i if lst == [1, 0, 0, 0]: print('甲是窃贼') elif lst == [0, 1, 0, 0]: print('乙是窃贼') elif lst == [0, 0, 1, 0]: print('丙是窃贼') else: print('丁是窃贼')
注:其中的1表示窃贼,0表示非窃贼,一个由四人组成的列表中,依次是:甲、乙、丙、丁。
15.求s=a+aa+aaa+…+aa…a的值,其中a是1~9之间的一个数字,表达式的项数从键盘输入(设不超过10项)。例如2+22+222+2222+22222(此时共有5个数相加,几个数相加由键盘控制)
def add(a, b): re = 0 sum = 0 for i in range(1, b + 1): re = re + a * 10 (i - 1) sum = sum + re return sum m = int(input('请输入一个1~9之间的数字:')) n = int(input('请输入一个正整数:')) print(add(m, n))
16.设N是一个四位数,它的9倍正好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数就是4321
def anti(a): a = str(a) b = a[::-1] return int(b) for i in range(1000, 1111): if i * 9 == anti(i): print(i)
注:这个题目和第1题思路是一样的。但是区别在于它的反序数是原数的9倍,那么,要找的数字范围肯定在1000和1111之间,由于不可能是1111本身,所以也将1111从这个范围内去掉了。
17.爱因斯坦出了一道这样的数学题;有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶,则最后剩5阶。只有每次跨7阶,最后才正好一阶都不剩,请问这条阶梯至少有多少阶?
for i in range(1, 10000): if i % 2 == 1 and i % 3 == 2 and i % 5 == 4 and i % 6 == 5 and i % 7 == 0: print(i) break
注:由于这个题目的需求为非确定值,而要求的答案是一个确定值,那么我们就可以随意设置寻找范围,从小到大,依次寻找,一旦找到,退出循环,得到的就是那个能够满足要求的最小值。
18.求1+12+123+……前n项的和,n由键盘输入。
n = int(input('请输入一个正整数:')) k = '' sum = 0 for i in range(1, n + 1): k = k + str(i) sum = sum + int(k) print(sum)
19.小学生智商测试。让电脑随机出十道100以内整数的加法题(10分/题),小学生从键盘回答答案,统计小学生最后得分
import random total = 0 for i in range(10): m, n = random.randint(1, 100), random.randint(1, 100) print(str(m) + '+' + str(n) + '=') a = input('请输入答案:') if a == str(m + n): total = total + 10 print('得分:', total)
20.斐氏数列是公元13世纪数学家斐波那契发明的。即:1,1,2,3,5,8,13,21,34,55,89,……,输出其前15项
def fb(n): # 斐波那契数列 if n == 1 or n == 2: return 1 else: return fb(n - 1) + fb(n - 2) for i in range(1, 16): print(fb(i))
注:以上代码供大家一起学习使用,不一定是最优解法,如果有更好的思路和方法,欢迎在评论区留言交流,让大家一起学习,一起进步!!!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122872.html