Python3---练习题目
第一题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' Python3 练习案例 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 程序源代码: ''' for i in range(1,5): for j in range(1,5): for k in range(1,5): if(i != k) and (i != j) and (j != k): print(i,j,k)
第二题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时, 超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 ''' i = int(input("请输入净利润:")) arr = [1000000,600000,400000,200000,100000] rat = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for idx in range(0,6): if i > arr[idx]: r += (i - arr[idx]) * rat[idx] print( (i - arr[idx]) * rat[idx] ) i = arr[idx] print(r)
第三题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少? 程序分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: ''' import math ''' math模块为浮点运算提供了对底层C函数库的访问: 1;sqrt() 方法返回数字x的平方根。 ''' for i in range(10000): #将循环数值转化为整数型 x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 268)) if (x * x == i+ 100) and ( y * y == i + 268): print(i)
第四题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天: ''' year = int(input("请输入年份:\n")) month = int(input("请输入月份:\n")) day = int(input("请输入天数:\n")) #Python的元组与列表类似,不同之处在于元组的元素不能修改。 months = (0,31,59,90,120,151,181,212,243,273,304,334) if 0 < month < 12: sun = months[month - 1] else: print("Date error") sun += day leap = 0 if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)): leap = 1 if (leap == 1) and (month > 2): sun += 1 print("it is the %dth day." % sun)
第五题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较, 如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 ''' l = [] for i in range(3): x = int(input("integer: \n")) l.append(x) l.sort() print(l) ''' 1;序列是Python中最基本的数据结构. 2;sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。 3;append()函数会将所有的参数视为一个列表元素插入到列表尾部 '''
第六题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:斐波那契数列。 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。 斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) ''' def fib(n): if n == 1 or n == 2: return 1 return fib(n -1)+fib(n-2) print(fib(10))
第七题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:将一个列表的数据复制到另一个列表中。 程序分析:使用列表[:]。 ''' a = [1,3,'a',True] b = a[:] print(b)
第八题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:输出9*9乘法口诀表。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 ''' for i in range(1,10): for j in range(1,10): result = i * j print("%d * %d = % -3d" %(i,j,result)) print("")
第九题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:暂停一秒输出。 程序分析:无。 ''' import time #dict.items返回可遍历的(键, 值) 元组数组。 MyD = {1:'A',2:'B'} for key,value in dict.items(MyD): print(key,value) time.sleep(1) #暂停1秒
第十题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... ''' f1 = 1 f2 = 1 for i in range(1,21): print("%12d %12d" % (f1,f2)) if (i % 2) == 0: print("") f1 = f1 + f2 f2 = f1 + f2
第十一题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ''' from math import sqrt from sys import stdout ''' 1;sqrt() 方法返回数字x的平方根。 2;sys该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。 3;stdout用于print()和表达式的输出和 提示input(); ''' h = 0 leap = 1 for m in range(101,201): k = int(sqrt(m + 1)) for i in range(2,k+1): if m % i == 0: leap = 0 break if leap == 1: print("%-4d" % m) h += 1 if h % 10 == 0: print("") leap = 1
第十二题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ''' 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)
第十三题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 ''' from sys import stdout n = int(input("input number: \n")) print("n = %d" % n) for i in range(2 , n + 1): while n != i: if n % i == 0: stdout.write(str(i)) stdout.write("*") n = n / i else: break print("%d" % n)
第十四题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 程序分析:程序分析:(a>b)?a:b这是条件运算符的基本例子。 ''' score = int(input("input score: \n")) if score >= 90: grade = 'A' elif score >= 60: grade = 'B' else: grade = 'C' print("%d belongs to %s " % (score,grade))
第十五题:
# -*- coding:utf-8 -*- #!/usr/bin/python import datetime if __name__ == "__main__": # 输出今日日期,格式为dd/mm/yyyy。 更多选项可以查看strftime()方法 print(datetime.date.today().strftime('%d/%m/%Y')) # 创建日期对象 Date = datetime.date(1941,1,5) print(Date.strftime('%d/%m/%Y')) #日期算术运算 DateNext = Date + datetime.timedelta(days=4) print(DateNext) #日期替换 DateT = Date.replace(year=Date.year + 1) print(DateT)
第十六题:
# -*- coding:utf-8 -*- #!/usr/bin/python import string ''' 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为'\n'。 ''' ''' Python标准库 - 文本处理服务 - string库 ''' if __name__ == "__main__": s = str(input('input a string: \n')) letters = 0 space = 0 digit = 0 others = 0 for c in s: if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1 print("char = %d\n space = %d\n digit = %d\n others = %d\n" % (letters,space,digit,others))
第十七题:
# -*- coding:utf-8 -*- #!/usr/bin/python ''' 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 程序分析:关键是计算出每一项的值。 ''' Tn = 0 Sn = [] n = int(input('n = :\n')) a = int(input('a = :\n')) for count in range(n): Tn = Tn + a a = a * 10 Sn.append(Tn) print(Tn) #reduce() 函数会对参数序列中元素进行累积。 Sn = reduce(lambda x,y : x + y,Sn) print(Sn)
第十八题:
# -*- coding:utf-8 -*- #!/usr/bin/python ''' 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。 ''' from sys import stdout for j in range(2,1001): k = [] n = -1 s = j for i in range(1,j): if j % i == 0 : n += 1 s -= i k.append(i) if s == 0: print(j) for i in range(n): stdout.write((str(k[i]))) stdout.write(' ') print(k[n])
第十九题:
# -*- coding:utf-8 -*- #!/usr/bin/python ''' 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? ''' Sn = 100.0 Hn = Sn / 2 for n in range(2,11): Sn += 2 * Hn Hn /= 2 print("Total of road is %f" % Sn) print("The tenth is %f meter" % Hn)
第二十题:
# -*- coding:utf-8 -*- #!/usr/bin/python ''' 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。 ''' x2 = 1 for day in range(9 , 0 , -1): print(day) x1 = (x2 + 1) * 2 x2 = x1 print(x1)
第二十一题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。 有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 ''' ''' a 可能对应 y , z c 对应 y ----- a 对应 z ---- b 对应 x ''' ''' 函数说明: 1;ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数, 它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值, 如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。 2;chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。 问题分析: 首先我们通过for 循环分别提取出代表三个x , y ,Z 不同的字母的变量,接下来我们根据条件(a说他不和x比,c说他不和x,z比)来设定if语句。 ''' for i in range(ord('x'),ord('z') + 1): for j in range(ord('x'),ord('z') + 1): if i != j: for k in range(ord('x'),ord('z') + 1): if(i != k) and (j != k): if(i != ord('x')) and (k != ord('x')) and (k != ord('z')): print("order is\n a -- %s\n b -- %s\n c -- %s" % (chr(i),chr(j),chr(k)))
第二十二题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:打印出如下图案(菱形): * *** ***** ******* ***** *** * 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 前四行规律: 第i行 : (2-i+1)个空格 + (2*i+1)一个* 第0行 : 3个空格 + 1一个* 第1行 : 2个空格 + 3一个* 第2行 : 1个空格 + 4一个* 第3行 : 0个空格 + 7一个* 后四行规律:第i行 : (i+1)个空格 + (4 - 2*i + i)一个* 第0行 : 1个空格 + 5一个* 第1行 : 2个空格 + 3一个* 第2行 : 3个空格 + 1一个* ''' from sys import stdout for i in range(4): #提取行数,i 分别表示 (0,1,2,3) print(i) for j in range(2 - i + 1): stdout.write(' ') for k in range(2 * i + 1): stdout.write('*') print for i in range(3): print(i) for j in range(i + 1): stdout.write(' ') for k in range(4 - 2 * i + 1): stdout.write('*') print
第二十三题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 程序分析:请抓住分子与分母的变化规律。 思路解析: 1;使用变量分别表示分子,分母。整个需要钱20项的和,那么分子,分母的规律变化需要循环20次。 2;前面想加的和设定一个变量存储他们的值 ''' a = 2.0 b = 1.0 s = 0 for i in range(1,21): s += a / b t = a a = a + b b = t print(s)
第二十四题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:求1+2!+3!+...+20!的和。 程序分析:参考23题 ''' n = 0 s = 0 t = 1 for n in range(1,21): t *= n s += t print("1! + 2! + 3! + ... + 20! = %d" % s)
第二十五题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! ''' def fact(j): sum = 0 if j == 0: sum = 1 else: sum = j * fact(j - 1) return sum for i in range(5): print("%d! = %d" % (i,fact(i)))
第二十六题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 利用字符串切片提取字符来操作 ''' def output(s,l): if l == 0: return print(s[l-1]) output(s,l-1) s = input('Input a string : ') l = len(s) output(s,l)
第二十七题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数, 他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。请问第五个人多大? ''' def age(n): if n == 1: c = 10 else: c = age(n-1) + 2 return c print(age(5))
第二十八题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 程序分析:学会分解出每一位数。 ''' x = int(input("请输入一个数:\n")) a = x // 10000 # 提取第五位数字 b = x % 10000 // 1000 #提取第四位数字 c = x % 1000 // 100 # 提取第三位数字 d = x % 100 // 10 # 提取第二位数字 e = x % 10 # 提取第一位数字 if a != 0: print("5位数:",e,d,c,b,a) elif b != 0: print("4位数:", e, d, c, b) elif c != 0: print("3位数:", e, d, c) elif d != 0: print("2位数:", e, d) elif e != 0: print("1位数:", e)
第二十九题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 12321 ''' a = int(input("请输入一个数字:\n")) x = str(a) flag = True for i in range(len(x)//2): if x[i] != x[-i - 1]: flag = False break if flag: print("%d 是一个回文数!" % a) else: print("%d 不是一个回文数!" % a)
第三十题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。。 ''' letter = input("please input:") # while letter != 'Y': if letter == 'S': print('please input second letter:') letter = input("please input:") if letter == 'a': print('Saturday') elif letter == 'u': print('Sunday') else: print('data error') elif letter == 'F': print('Friday') elif letter == 'M': print('Monday') elif letter == 'T': print('please input second letter') letter = input("please input:") if letter == 'u': print('Tuesday') elif letter == 'h': print('Thursday') else: print('data error') elif letter == 'W': print('Wednesday') else: print('data error')
第三十一题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:按相反的顺序输出列表的值。 ''' ''' 解析: [ 1 2 3 4 5 ] print(a[-1]) ###取最后一个元素 [5] print(a[:-1]) ### 除了最后一个取全部 [ 1 2 3 4 ] print(a[::-1]) ### 取从后向前(相反)的元素 [ 5 4 3 2 1 ] print(a[2::-1]) ### 取从下标为2的元素翻转读取 [ 3 2 1 ] ''' a = ['one', 213 , True ] for i in a[::-1]: print(i)
第三十二题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:按逗号分隔列表。 函数解析: 1;Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 ''' L = [1,2,3,"ONE",True,{'A':123}] S1 = ','.join(str(n) for n in L) S2 = '666'.join(str(n) for n in L) print(S1) print(S2)
第三十三题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:练习函数调用。 ''' def hello_world(): print("hello world") def three_hellos(): for i in range(3): hello_world() if __name__ == "__main__": three_hellos()
第三十四题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:文本颜色设置。 程序分析:无。 ''' class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' print(bcolors.WARNING + "警告的颜色字体?" + bcolors.ENDC)
第三十五题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:求100之内的素数。 ''' from math import sqrt ''' 函数解析: 1;sqrt() 方法返回数字x的平方根。 ''' if __name__ == "__main__": N = 100 a = range(0,N) for i in range(2,int(sqrt(N))): for j in range(i+1 , N): if (a[i] != 0) and (a[j] != 0): if a[i] % a[j] == 0: a[j] = 0 print for i in range(2,N): if a[i] != 0: print("%5d" % a[i]) if (i - 2) % 10 == 0: print
第三十六题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:对10个数进行排序。 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 ''' if __name__ == "__main__": N = 10 # input data print("please input ten num:\n") l = [] for i in range(N): l.append(int(input("input a number:\n"))) print for i in range(N): print(l[i]) print # sort tem num for i in range(N - 1): min = i for j in range(i + 1 , N): if l[min] > l[j] : min = j l[i],l[min] = l[min],l[i] print("after sorted") for i in range(N): print(l[i])
第三十七题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:求一个3*3矩阵对角线元素之和。 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 ''' if __name__ == "__main__": a = [] sum = 0.0 for i in range(3): a.append([]) for j in range(3): a[i].append(float(input("input num:\n"))) print(a) for i in range(3): sum += a[i][i] print(sum)
第三十八题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。 ''' if __name__ == "__main__": # 方案一: a = [1,2,3,4,5,6,7,8,9,0] print("original list is:") for i in range(len(a)): print(a[i]) number = int(input("insert a new number: \n")) end = a[9] if number > end: a.append(number) #a[10] = number else: for i in range(10): if a[i] > number: temp1 = a[i] a[i] = number for j in range(i + 1, 11): temp2 = a[j] a[j] = temp1 temp1 = temp2 break for i in range(11): print(a[i])
第三十九题:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:将一个数组逆序输出。 程序分析:用第一个与最后一个交换。 ''' if __name__ == "__main__": a = [9,3,4,6,1] N = len(a) print(a) for i in range(len(a) // 2): a[i],a[N -i -1] = a[N -i -1],a[i] print(a)
第四十题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:模仿静态变量的用法。 ''' def varfunc(): var = 0 print("var = %d" % var) var += 1 if __name__ == "__main__": for i in range(3): varfunc() #类的属性 #作为类的一个属性吧 class Static: StaticVar = 5 def varfunc(self): self.StaticVar += 1 print(self.StaticVar) print(Static.StaticVar) a = Static() for i in range(3): a.varfunc()
第四十一题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:学习使用auto定义变量的用法。 程序分析:没有auto关键字,使用变量作用域来举例吧。 ''' num = 2 def autofunc(): num = 1 print("internal block num = %d" % num ) num += 1 for i in range(3): print("The num = %d" % num) num += 1 autofunc()
第四十二题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:模仿静态变量(static)另一案例。 程序分析:演示一个python作用域使用方法 ''' class Num: nNum = 1 def inc(self): self.nNum += 1 print("nNum = %d" % self.nNum) if __name__ == "__main__": nNum = 2 inst = Num() for i in range(3): nNum += 1 print("The num = %d" % nNum) inst.inc()
第四十三题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:统计 1 到 100 之和。 ''' tmp = 0 for i in range(1,101): tmp += i print("The sum is %d" % tmp)
第四十四题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 求输入数字的平方,如果平方运算后小于 50 则退出。 ''' TURE = 1 FALSE = 0 def SQ(x): return x * x print("如果输入的数字小于 50 ,程序将停止运行。") again = 1 while again: num = int(input("Please input number: ")) print("运算结果为%d" % (SQ(num))) if num >= 50: again = TURE else: again = FALSE
第四十五题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:两个变量值互换。 ''' def exchange(a,b): a,b = b,a return (a,b) if __name__ == "__main__": x = 10 y = 20 print("x = %d , y = %d" % (x,y)) x,y = exchange(x,y) print("x = %d , y = %d" % (x,y))
第四十六题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:数字比较。 ''' if __name__ == "__main__": i = 10 j = 20 if i > j: print("%d 大于 %d" % (i,j)) elif i == j: print("%d 等于 %d" % (i, j)) elif i < j: print("%d 小于 %d" % (i, j)) else: print("未知")
第四十七题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:使用lambda来创建匿名函数。 ''' MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y MINIMUM = lambda x,y : (x > y) * y + (x < y) * x if __name__ == "__main__": a = 10 b = 20 print("The largar one is %d" % MAXIMUM(a,b)) print("The lower one is %d" % MINIMUM(a, b))
第四十八题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:输出一个随机数。 程序分析:使用 random 模块。 ''' import random print(random.uniform(10,20))
第四十九题:
#! /usr/bin/python # -*- coding: UTF-8 -*- ''' 题目:学习使用按位与 & 。 程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1。 ''' if __name__ == "__main__": a = 77 b = a & 3 print("a & b = %d" % b) b &= 7 print("a & b = %d" % b)