在runoob.com的例子中选了比较有价值的12例进行练习,后附代码,水平有限,肯定存在更好的答案,见谅
train1:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
train2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
train3:输入某年某月某日,判断这一天是这一年的第几天?
train4:暂停一秒输出,并格式化当前时间。
train5:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
train6:利用递归方法求5!
train7:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
train8:按相反的顺序输出列表的值。
train9:文本颜色设置
train10:画图,学用circle画圆形
train11:列表排序及连接
train12:交换方法,将a赋值给b,b赋值给a
额外注意到的事:
input([promt])#可以加提示语句
若a是一个序列,for循环可以如下:
for s in a:
或者
for i in range(len(a)):#注range才表示数字范围,别掉了
输出时注意类型,如:
a=1
print(a) #合法
print("1"+a) #不合法,a是Int
print("1"+str(a)) #合法
bool型变量是True和False,不是true,注意大小写
多冒号,list[::-1]#第一个参数位置默认最初位置,第二个参数位置默认最末尾位置,第三个是步长,-1即倒序,若步长为2,即遍历类似2,4,6,8,10
再次复习:a[0:1]即a[0],a[0:2]即a[0],a[1]
注意:a[0:]即遍历全部,a[0:-1]遍历除最后一个的所有.理解--不填即默认最开始或最结尾。有讲究,可以各种情况试一下
from tkinter import *#可利用GUI工具Tkinter,使用canvas画图
列表有.sort()#排序方法
列表有.extend(b)#连接b列表
交换赋值方式:a,b=b,a #java中需要加入中间变量,如c=a,a=b,b=c
import time
from tkinter import *
# train1:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
def train1():
total_num = 0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if j != i:
if (k != i) and (k != j):
print(str(i) + str(j) + str(k))
total_num += 1
else:
continue
else:
continue
print("一共有:", total_num)
# train2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
def train2():
t = []
for m in range(1, 168):
for n in range(m):
if m ** 2 - n ** 2 == 168:
x = n ** 2 - 100
t.append(x)
print('符合条件的整数有:', t)
# train3:输入某年某月某日,判断这一天是这一年的第几天?
def train3():
year = int(input("请输入年:"))
month = int(input("请输入月:"))
day = int(input("请输入日:"))
month_day = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
day_count = 0
if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
day_count = month_day[month - 1] + day + 1
else:
day_count = month_day[month - 1] + day
print(str(year) + "年" + str(month) + "月" + str(day) + "日是当年第" + str(day_count) + "天")
# train4:暂停一秒输出,并格式化当前时间。
def train4():
print(time.asctime(time.localtime(time.time())))
time.sleep(1)
print(time.asctime(time.localtime(time.time())))
# train5:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
def train5():
input_str = input("请输入字符串:")
letters = 0
spaces = 0
nums = 0
others = 0
for i in range(len(input_str)):
c = input_str[i]
if (c.isalpha()):
letters += 1
elif (c.isspace()):
spaces += 1
elif (c.isdigit()):
nums += 1
else:
others += 1
print("字母个数:" + str(letters))
print("数字个数:" + str(nums))
print("空格个数:" + str(spaces))
print("其他个数:" + str(others))
# train6:利用递归方法求5!
def train6(para):
if para == 1:
return 1
else:
return (para * train6(para - 1))
# train7:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
def train7():
input_num = input("请输入数字:")
index = True
for i in range(int(len(input_num) / 2)):
if input_num[i] == input_num[-i - 1]:
continue
else:
index = False
break
if index:
print("是回文数")
else:
print("不是回文数")
# train8:按相反的顺序输出列表的值。
def train8():
a = ['one', 'two', 'three']
for i in a[::-1]:
print(i)
# train9:文本颜色设置
def train9():
print('\033[93m' + "警告的颜色字体?" + '\033[0m')
# train10:画图,学用circle画圆形
def train10():
canvas = Canvas(width=800, height=600, bg='yellow')
canvas.pack(expand=YES, fill=BOTH)
k = 1
j = 1
for i in range(0, 26):
canvas.create_oval(310 - k, 250 - k, 310 + k, 250 + k, width=1)
k += j
j += 0.3
mainloop()
# train11:列表排序及连接
def train11():
a = [1, 3, 2]
b = [3, 4, 5]
a.sort() # 对列表 a 进行排序
print(a)
# 连接列表 a 与 b
print(a + b)
# 连接列表 a 与 b
a.extend(b)
print(a)
# train12:交换方法,将a赋值给b,b赋值给a
def train12():
a, b = 1, 2
print("a:" + str(a) + ",b:" + str(b))
a, b = b, a
print("a:" + str(a) + ",b:" + str(b))
# train1()
# train2()
# train3()
# train4()
# train5()
# train6()
# train7()
# train8()
# train9()
# train10()
# train11()
train12()