python学习三(十二例练习)--基于Java基础


在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()

猜你喜欢

转载自blog.csdn.net/qq_36187544/article/details/86543410