(持续更新中……)
实践出真知呐
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
代码片:
count = 0
print("1、2、3、4可以组成的无重复三位数有:")
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if (x != y) and (x != z) and (y != z):
print(x,y,z)
count += 1
print("一共%d个数字。"%count)
运行结果:
1、2、3、4可以组成的无重复三位数有:
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2
一共24个数字。
题目:企业发放的奖金根据利润提成。
利润(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,求应发放奖金总数?
代码片:
arr = [1000000, 600000, 400000, 200000, 100000, 0]
rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
i = int(input("请输入当月理论(单位:元):"))
thisarr = 0
for j in range(len(arr)):
if i > arr[j]:
thisarr += (i - arr[j])*rat[j]
i = arr[j]
print("应发放奖金总数(单位:元):%d"%thisarr)
运行结果:
请输入当月理论(单位:元):1200000
应发放奖金总数(单位:元):41500
题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
代码片:
import math
for x in range(10000):
a = int(sqrt(x+100))
b = int(sqrt(x+268))
if (a*a == x+100) and (b*b == x+268):
print(x)
运行结果:
21
261
1581
题目:输入某年某月某日,判断这一天是这一年的第几天?
代码片:
print("请输入日期:")
x = int(input("年:"))
y = int(input("月:"))
z = int(input("日:"))
list = [31,28,31,30,31,30,31,31,30,31,30,31]
days = sum(list[0:(y-1)])+ z
if x / 4 ==0:
print("这一天是这一年的第%d天。"%(days+1))
else:
print("这一天是这一年的第%d天。"%(days))
运行结果:
这一天是这一年的第354天。
题目:输入三个整数 x,y,z,请把这三个数由小到大输出。
代码片:
list = []
for i in range(3):
x = int(input("请输入第%d个数字:"%(i+1)))
list.append(x)
list.sort()
print("这三个数由小到大依次是:", list[0], list[1], list[2])
运行结果:
请输入第1个数字:34
请输入第2个数字:23
请输入第3个数字:187
这三个数由小到大依次是: 23 34 187
题目:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
代码片:
fib = [0,1]
i = int(input("您希望输出第几个斐波那契数?"))
if i > 2:
for j in range(0,i):
fib.append(fib[-1]+fib[-2])
else: pass
print("第%d个斐波那契数是%d。" % (i, fib[i - 1]))
运行结果:
您希望输出第几个斐波那契数?10
第10个斐波那契数是34。
题目:输出9*9乘法口诀表
代码片:
for i in range(1,10):
for j in range(1,i+1):
print("%d x %d = %d"%(i,j,i*j), end="\t")
print()
运行结果:
1 x 1 = 1
2 x 1 = 2 2 x 2 = 4
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
题目:暂停一秒输出。
代码片:
import time
print(time.strftime('%H:%M:%S', time.localtime(time.time())))
time.sleep(1)
print(time.strftime('%H:%M:%S', time.localtime(time.time())))
运行结果:
13:30:11
13:30:12
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
(自己比划了下, 还是个斐波那契数列)
代码片:
mon = int(input("需要计算第几个月的兔子总数?"))
rat = [0,2]
for i in range(1,mon+1):
rat.append(rat[-1]+rat[-2])
print("第%d个月一共%d只兔子。" % (i, rat[i]))
运行结果:
第1个月一共2只兔子。
第2个月一共2只兔子。
第3个月一共4只兔子。
第4个月一共6只兔子。
第5个月一共10只兔子。
第6个月一共16只兔子。
第7个月一共26只兔子。
第8个月一共42只兔子。
第9个月一共68只兔子。
第10个月一共110只兔子。
题目:判断101 - 200之间有多少个素数,并输出所有素数。
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数
代码片:
count = 0
print("101 - 200之间的素数有:")
for x in range(101,201):
sqr = int(math.sqrt(x))
for i in range(2,sqr+1):
if x%i ==0:
break
else:
print(x)
count += 1
print("共%d个素数。"%count)
运行结果:
101 - 200之间的素数有:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
共21个素数。
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
代码片:
for x in range(1,10):
for y in range(0,10):
for z in range(0,10):
if (x**3 + y**3 + z**3) == (100*x + 10*y +z):
print(100*x + 10*y +z)
运行结果:
153
370
371
407
题目: 将一个正整数分解质因数。例如:输入90,打印出90 = 2x3x3x5。
代码片:
i,y=2,x
while i<=x//2:
for j in range(x//2):
if y%i==0 and y!=i:
print("%dx"%i,end="")
y=y//i # 如果使用,y=y/i,则y会转变为float
i=i+1
print(y)
运行结果:
请输入一个正整数:90
90分解质因数为:90 = 2x3x5x3
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示
代码片:
score = float(input("请输入学生分数:"))
if score>=90 and score<=100:
print("该同学分数等级为A")
elif score>=60 and score<90:
print("该同学分数等级为B")
elif score>=0 and score<60:
print("该同学分数等级为C")
else:
print("分数输入错误!!!")
运行结果:
请输入学生分数:97.5
该同学分数等级为A
题目:输出指定格式的日期。
代码片:
import time
print("请输入日期:")
year = int(input("年:"))
month = int(input("月:"))
day = int(input("日:"))
date = datetime.date(year, month, day).strftime('%Y-%m-%d, %B, %A')
# format %y requires year >= 1900 on Windows, %y(例:20), %Y(例:2020), %B(月份,例:December), %A(礼拜几,例:Wednesday)
print(date)
运行结果:
请输入日期:
年:2121
月:12
日:31
2121-12-31, December, Wednesday
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
代码片:
str = input("请输入一串字符:")
letter, space, digit, other = 0, 0, 0, 0
for chacter in str:
if chacter.isalpha():
letter+=1
elif chacter.isspace():
space+=1
elif chacter.isdigit():
digit+=1
else:
other+=1
print("该字符串中包含%d字母、%d空格、%d数字、%d其他字符"%(letter, space, digit, other))
运行结果:
请输入一串字符:123abcd *# 12 ab
该字符串中包含6字母、3空格、5数字、2其他字符
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
代码片:
a = input("请输入1-9之间的任意整数。\n") # type(a) = string
n = int(input("请问需要几个数字连续相加?\n"))
str = "" # 用于接收若干个a组成的字符串
sum = 0
for num in range(0,n):
str = str+a
print("%s+"%str,end="") if num<n-1 else print("%s"%str,end="")
sum += int(str)
print("=%d"%sum)
运行结果:
请输入1-9之间的任意整数。
3
请问需要几个数字连续相加?
7
3+33+333+3333+33333+333333+3333333=3703701
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
代码片:
print("1000以内的完数有:")
count = 0 # 用于计算完数个数
# 先求该数的所有因子,并计算因子之和
for num in range(1,1000):
sum = 0 # 作为所有因子之和的接收器
for factor in range(1, num):
if num%factor == 0:
sum += factor
# 比较该数与其因子之和
if sum == num:
# 输出符合要求的数
print(num)
count += 1
print("一共有%d个完数。"%count)
运行结果:
1000以内的完数有:
6
28
496
一共有3个完数。
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
代码片:
s = 0.0 # 第n次落地时,共经过多少米。变量类型定义为浮点型
h = 100.0 # 第n次反弹多高。变量类型定义为浮点型
for n in range(10):
if n < 1:
h = h
s = s + h
else:
h = h/2
s += h*2
print("小球第10次落地时%f米,第10次反弹%f米。"%((n+1), s, (n+1), h))
运行结果:
小球第10次落地时299.609375米,第10次反弹0.195312米。
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
(从最后一天开始倒推)
代码片:
peach = 1 # 第 10天剩 1 个桃子
for day in range(9,0,-1):
peach = (peach+1) *2
print("第一天有%d个桃子。"%peach)
运行结果:
第一天有1534个桃子。
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
代码片:
team2 = ['x', 'y', 'z']
for a in team2:
if a != 'x': # a说他不和x比
for b in team2:
for c in team2:
if c != b and c != a and b != a: # a,b,c对手不重复
if c != 'x' and c != 'z': # c说他不和x,z比
print('''
a vs %s
b vs %s
c vs %s
'''%(a, b, c))
运行结果:
a vs z b vs x c vs y
题目:打印出如下图案(菱形)
代码片:
blank = " "
asterisk = "*"
lenght = 11
for i in range(1,6):
if 5%i == 0: print('%s%s'%(blank*5, asterisk))
elif 4%i == 0: print('%s%s'%(blank*2, asterisk*7))
else: print('%s'%(asterisk*11))
'''
输出在这.....
*
*******
***********
*******
*
'''
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
(就问熟不熟悉)
代码片:
# t1 = a1/b1
# t2 = (a1+b1)/a1
# tn = (a(n-1)+b(n-1))/a(n-1)
a = 2.0
b = 1.0
t = 0.0
for n in range(20):
t = t + a/b
c = b
b = a
a = b + c # 即 a(n-1) + b(n-1)
print(t)
运行结果:
32.66026079864164
题目:求1+2!+3!+…+20!的和。
代码片:
sum = 0
for i in range(1,21):
tn = 1
for j in range(1,i+1):
tn *= j
sum += tn
print("1+2!+3!+...+20!的和是", sum)
运行结果:
1+2!+3!+…+20!的和是 2561327494111820313
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
代码片:
# 定义一个递归函数
# 第一个人的年龄 a1,总共有n个人,an = a(n-1)+2
def age(person, firstPersonAge):
# person: 总人数
# firstPersonAge: 第一个人的年纪
if person == 1:
personAge = firstPersonAge
else:
personAge = age(person-1, firstPersonAge) + 2
return personAge
fifthPersonAge = age(5,10)
print(fifthPersonAge)
运行结果:
18
题目:判断一个数是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
代码片:
def palindrome(num):
if num == num[::-1]:
print("%s是一个回文数"%num)
else:
print("%s不是一个回文数"%num)
for i in range(3): # 做3次实验
num = input("请输入一个正整数:")
palindrome(num)
运行结果:
请输入一个正整数:123321
123321是一个回文数
请输入一个正整数:12321
12321是一个回文数
请输入一个正整数:123445
123445不是一个回文数
题目:求一个3*3矩阵对角线元素之和。
代码片:
list = []
for i in range(3):
a = []
for j in range(3):
item = float(input("请输入矩阵第%d第%d列元素:"%(i+1,j+1)))
a.append(item)
list.append(a)
print("矩阵对角线元素之和:")
sum = 0
for i in range(3):
sum += list[i][i]
print("%f+"%list[i][i],end="") if i < 2 else print("%f="%list[i][i],end="")
print(sum)
运行结果:
请输入矩阵第1第1列元素:12.32
请输入矩阵第1第2列元素:123.56
请输入矩阵第1第3列元素:12.2
请输入矩阵第2第1列元素:12.45
请输入矩阵第2第2列元素:123
请输入矩阵第2第3列元素:123.4432
请输入矩阵第3第1列元素:12.3476
请输入矩阵第3第2列元素:34.32
请输入矩阵第3第3列元素:45.34
矩阵对角线元素之和:
12.320000+123.000000+45.340000=180.66
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
代码片:
def firstLetter(x):
return x[0] == kw1
def secondLetter(x):
return x[1] == kw2
print("Match weekdays name...")
week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Satday", "Sunday"]
kw1 = input("Please input the first letter:").upper()
week_first = list(filter(firstLetter, week))
if len(week_first) > 1:
kw2 = input("Please input the second letter:").lower()
week_second = list(filter(secondLetter, week_first))
print(week_second[0])
else:
print(week_first[0])
运行结果:
Please input the first letter:s
Please input the second letter:u
Sunday
题目:使用 tkinter 库创建应用框并设置简易UI。
代码片:
import tkinter
class calculator():
def __init__(self):
self.window = tkinter.Tk() # 创建窗口
self.window.title("计算器") # 给你的小窗口命个名
self.window.geometry('500x550') # 设置窗口大小
self.buttonlist = [] # 输入按钮
self.layout() # 排版设计
self.window.mainloop() # 主窗口循环显示,不然都看不见框……
def button(self, buttonname, text, x, y, width, height):
self.buttonname = buttonname
self.buttonname = tkinter.Button(self.window, text = text,bg='#DCDCDC',font=("Caribi",11))
self.buttonname.place(x = x, y = y,width = width, height = height)
def layout(self):
self.label = tkinter.Label(self.window, text = '简易计算器(以后加个menu)', background = "#DCDCDC", font = ("Caribi", 11))
self.label.place(x = 50, y = 0, width = 400, height = 20) # 放置部件
self.result = tkinter.Text(self.window, show = None, background = "#F5F5F5") # 输入框 & 结果框
self.result.place(x = 50, y = 40, width = 400, height = 100)
# 按钮
self.buttonlist = [
self.button('sign_percent','%',50,430,80,60),
self.button('num0', '0', 150, 430,80,60),
self.button('sign_point','.',250,430,80,60),
self.button('num1','1',50,340,80,60),
self.button('num2','2',150,340,80,60),
self.button('num3','3',250,340,80,60),
self.button('num4','4',50,250,80,60),
self.button('num5','5',150,250,80,60),
self.button('num6','6',250,250,80,60),
self.button('num7','7',50,160,80,60),
self.button('num8','8',150,160,80,60),
self.button('num9','9',250,160,80,60),
self.button('sign_plus','+',350,160,40,60),
self.button('sign_minus','-',410,160,40,60),
self.button('sign_multiple','*',350,250,40,60),
self.button('sign_divide', '/', 410, 250,40,60),
self.button('enter_button','Enter',350,340,100,150)
]
if __name__ == '__main__':
calculator()
代码片:
# 接上
def pressNum(self,num): # 设置一个数字函数 判断是否按下数字 并获取数字将数字写在显示版上
if self.isPressSign == False:
pass
else: # 重新将运算符号状态设置为否
self.result.set(0)
self.isPressSign = False
# 判断界面的数字是否为0
oldnum = self.result.get() # 第一步
if oldnum == '0': # 如过界面上数字为0 则获取按下的数字
self.result.set(num)
else: # 如果界面上的而数字不是0 则链接上新按下的数字
newnum = oldnum + num
self.result.set(newnum) # 将按下的数字写到面板中
代码片:
# 接上
#运算函数
def pressCompute(self,sign):
num = self.result.get() #获取界面数字
self.lists.append(num) #保存界面获取的数字到列表中
self.lists.append(sign) #讲按下的运算符号保存到列表中
self.isPressSign = True
if sign =='CE': #如果按下的是'AC'按键,则清空列表内容,讲屏幕上的数字键设置为默认数字0
self.lists.clear()
self.result.set(0)
if sign =='Del': #如果按下的是退格‘’,则选取当前数字第一位到倒数第二位
a = num[0:-1]
self.lists.clear()
self.result.set(a)
代码片:
# 接上
def pressEqual(self):
curnum = self.result.get() #设置当前数字变量,并获取添加到列表
self.lists.append(curnum)
computrStr = ''.join(self.lists) #讲列表内容用join命令将字符串链接起来
endNum = eval(computrStr) #用eval命令运算字符串中的内容
self.result.set(endNum) #讲运算结果显示到屏幕1
self.result2.set(computrStr) #将运算过程显示到屏幕2
self.lists.clear() #清空列表内容
代码片:
**题目: 附上完整的计算器函数(有Bug……)
**代码片**:
```python
# -*- coding: UTF-8 -*-
import tkinter
class calculator():
def __init__(self):
self.window = tkinter.Tk() # 创建窗口
self.window.title("计算器") # 给你的小窗口命个名
self.window.geometry('300x440') # 设置窗口大小
self.result = tkinter.StringVar() # 输出结果
self.result.set(0)
self.result2 = tkinter.StringVar() # 显示面板显示结果2,用于显示计算过程
self.result2.set('')
self.buttonlist = [] # 输入按钮
self.layout() # 排版设计
# 操作函数
self.lists = [] # 设置一个变量 保存运算数字和符号的列表
self.isPressSign = False # 添加一个判断是否按下运算符号的标志,假设默认没有按下按钮
self.isPressNum = False
self.window.mainloop() # 主窗口循环显示,不然都看不见框……
def button(self, buttonname, text, x, y, width, height, color, command):
self.buttonname = buttonname
self.buttonname = tkinter.Button(self.window, text = text,bg=color,font=("Caribi",11),command = command)
self.buttonname.place(x = x, y = y,width = width, height = height)
def layout(self):
self.label0 = tkinter.Label(self.window, text = '简易计算器', background = "#F8F8FF", font = ("Caribi", 11))
self.label0.place(x = 0, y = 0, width = 300, height = 20)
# 输入框
self.label = tkinter.Label(self.window, font=('微软雅黑', 20), bg='#fff', bd='9', fg='#828282', anchor='se',
textvariable=self.result2)
self.label.place(x = 0, y = 20, width=300, height=120)
# 结果框
self.label2 = tkinter.Label(self.window, font=('微软雅黑', 30), bg='#fff', bd='9', fg='black', anchor='se',
textvariable=self.result)
self.label2.place(x = 0, y = 140, width=300, height=60)
# 按钮
self.buttonlist = [
# line 1
self.button('num7', '7', 0, 200, 60, 60, '#F8F8FF', lambda:self.pressNum('7')),
self.button('num8', '8', 60, 200, 60, 60, '#F8F8FF', lambda:self.pressNum('8')),
self.button('num9', '9', 120, 200, 60, 60, '#F8F8FF', lambda:self.pressNum('9')),
self.button('sign_CE', 'CE', 180, 200, 60, 60, '#F8F8FF', lambda:self.pressCompute('CE')),
self.button('sign_del', 'Del', 240, 200, 60, 60, '#F8F8FF', lambda:self.pressCompute('Del')),
# line 2
self.button('num4', '4', 0, 260, 60, 60, '#F8F8FF', lambda:self.pressNum('4')),
self.button('num5', '5', 60, 260, 60, 60, '#F8F8FF', lambda:self.pressNum('5')),
self.button('num6', '6', 120, 260, 60, 60, '#F8F8FF', lambda:self.pressNum('6')),
self.button('sign_multiple', '*', 180, 260, 60, 60, '#F8F8FF', lambda:self.pressCompute('*')),
self.button('sign_divide', '/', 240, 260, 60, 60, '#F8F8FF', lambda:self.pressCompute('/')),
# line 3
self.button('num1','1', 0, 320, 60, 60, '#F8F8FF', lambda:self.pressNum('1')),
self.button('num2','2',60, 320, 60, 60, '#F8F8FF', lambda:self.pressNum('2')),
self.button('num3','3',120, 320, 60, 60, '#F8F8FF', lambda:self.pressNum('3')),
self.button('sign_plus', '+', 180, 320, 60, 60, '#F8F8FF', lambda:self.pressCompute('+')),
# line 4
self.button('sign_percent', '%', 0, 380, 60, 60, '#F8F8FF', lambda:self.pressCompute('%')),
self.button('num0', '0', 60, 380, 60, 60, '#F8F8FF', lambda:self.pressNum('0')),
self.button('sign_point', '.', 120, 380, 60, 60, '#F8F8FF', lambda:self.pressCompute('.')),
self.button('sign_minus', '-', 180, 380, 60, 60, '#F8F8FF', lambda:self.pressCompute('-')),
# enter
self.button('enter_button','Enter',240, 320, 60, 120, '#E6E6FA', lambda:self.pressEqual())
]
# 数字函数
def pressNum(self,num): # 设置一个数字函数 判断是否按下数字 并获取数字将数字写在显示版上
if self.isPressSign == False:
pass
else: # 重新将运算符号状态设置为否
self.result.set(0)
self.isPressSign = False
# 判断界面的数字是否为0
oldnum = self.result.get() # 第一步
if oldnum == '0': # 如过界面上数字为0 则获取按下的数字
self.result.set(num)
else: # 如果界面上的而数字不是0 则链接上新按下的数字
newnum = oldnum + num
self.result.set(newnum) # 将按下的数字写到面板中
#运算函数
def pressCompute(self,sign):
num = self.result.get() #获取界面数字
self.lists.append(num) #保存界面获取的数字到列表中
self.lists.append(sign) #讲按下的运算符号保存到列表中
self.isPressSign = True
if sign =='CE': #如果按下的是'AC'按键,则清空列表内容,讲屏幕上的数字键设置为默认数字0
self.lists.clear()
self.result.set(0)
if sign =='Del': #如果按下的是退格‘’,则选取当前数字第一位到倒数第二位
a = num[0:-1]
self.lists.clear()
self.result.set(a)
# 获取运算结果函数
def pressEqual(self):
curnum = self.result.get() #设置当前数字变量,并获取添加到列表
self.lists.append(curnum)
computrStr = ''.join(self.lists) #讲列表内容用join命令将字符串链接起来
endNum = eval(computrStr) #用eval命令运算字符串中的内容
self.result.set(endNum) #讲运算结果显示到屏幕1
self.result2.set(computrStr) #将运算过程显示到屏幕2
self.lists.clear() #清空列表内容
if __name__ == '__main__':
calculator()
数组通过index提取数据,JSON通过键名提取数据。
数据需逐层提取。
代码片:
**题目:
**代码片**:
```python
# -*- coding: UTF-8 -*-
json_Example={
"id":1,
"name":"Kitty",
"info":[
{
"gender":"女"
},
{
"birth":"2000-01-01"
}
]
}
id=json_Example["id"] # 通过键名提取数据
print(id)
# name=json_Example[1] # 通过index提取数据 --报错
# print(name)
gender=json_Example["info"][0]["gender"]
print(gender)
运行结果:
1
女
接上面的例子
代码片:
**题目:
**代码片**:
```python
# -*- coding: UTF-8 -*-
json_Example={
"id":1,
"name":"Kitty",
"info":[
{
"gender":"女"
},
{
"birth":"2000-01-01"
}
]
}
with open(file,'a',newline="") as file: # newline="":保存数据时去除空行
writer=csv.writer(file)
# writer.writerow(需要保存的数据变量)
writer.writerows(json_Example) # 数据取键名,一个字母一列
writer.writerow("")
# 数据取键名,一个字段一列 下面两行代码运行相同
writer.writerow(json_Example)
writer.writerow(json_Example.keys())