学习记录:python 春节30个例子练习题


     	  1.冒泡排序
          2.计算x的n次方的方法
          3.计算a*a + b*b + c*c....
          4.计算阶乘 n!
          5.列出当前目录下的所有文件和目录名
          6.把一个list中所有的字符串变成小写
          7.输出某个路径下的所有文件和文件夹的路径
          8.输出某个路径及其子目录下的所有文件路径
          9.输出某个路径及其子目录下所有以 .html 为后缀的文件
          10.把原字典的键值对颠倒并生产新的字典
          11.打印九九乘法表
          12.替换列表中所有的33a
          13.打印每个名字
          14.合并去重
          15.随机生成验证码的两种方式
          16.计算平方根
          17.判断字符串是否只由数字组成
          18.判断奇偶数
          19.判断闰年
          20.获取最大值
          21.斐波那契数列
          22.十进制转二进制,八进制,十六进制
          23.最大公约数
          23.最小公倍数
          24.简单计算器
          25.生成日历
          26.文件IO
          27.字符串判断
          28.字符串大小写转换
          29.计算每个月天数
          30.获取昨天的日期

# 1.冒泡排序
# list = [10, 51, 81, 66, 55, 54, 15, 88, 41, 65]

# def sortport():
#     for i in range(len(list)-1):
#         for j in range(len(list)-1-i):
#             if list[j] > list[j+1]:
#                 list[j],list[j+1] = list[j+1],list[j]
#     return list

# print(sortport())


# 2.计算x的n次方的方法

# def  power(x, n):
#     s = 1
#     while  n > 0:
#         n = n - 1u
#         s = s * x
#     return s

# print(power(x=2,n=2))


# 3.计算a*a + b*b + c*c....

# def  calc(*numbers):
#     sum = 0
#     for n in numbers:
#         sum = sum + n * n
#     return sum

# numbers = [1,2,3,4,5,6,7,8,9,10,
#             11,12,13,14,15,16,17,18,19,
#             20,21,22,23,24,25,26,27,28,29,30,
#             31,32,33,34,35,36,37,38,39,40,41,
#             42,43,44,45,46,47,48,49,50,51,52,
#             53,54,55,56,57,58,59,60,61,62,63,
#             64,65,66,67,68,69,70,71,72,73,74,
#             75,76,77,78,79,80,81,82,83,84,85,
#             86,87,88,89,90,91,92,93,94,95,96,
#             97,98,99,100
#             ]

# print(calc(*numbers))


# 4.计算阶乘 n!
# def fac():
#     num = int(input("请输入一个数字:"))
#     factorial = 1

# # 查看数字是负数, 0 或 正数
#     if num < 0:
#         print("抱歉,负数没有阶乘")
#     elif num == 0:
#         print("0 的阶乘为 1")
#     else:
#         for  i in range(1, num + 1):
#             factorial = factorial * i
#         print("%d 的阶乘为 %d" %(num, factorial))
# fac()


# 5.列出当前目录下的所有文件和目录名
# import os
# print([d for d in os.listdir('.')])

# 6.把一个list中所有的字符串变成小写
# list = ['Aa','Bb','Cc','Dd','Ee']
# print([s.lower() for s in list])

# 7.输出某个路径下的所有文件和文件夹的路径
# import os
# def print_dir():
#     filepath = input("请输入一个路径:")
#     if filepath == "":
#         print("请输入正确的路径")
#     else:
#         for i in os.listdir(filepath):      #获取目录中的文件及子目录列表
#             print(os.path.join(filepath,i)) #把路径组合起来

# print(print_dir())

# 8.输出某个路径及其子目录下的所有文件路径
# import os
# def show_dir(filepath):
#     for i in os.listdir(filepath):
#         path = (os.path.join(filepath, i))
#         print(path)
#         if os.path.isdir(path):        #isdir()判断是否目录
#             show_dir(path)             #如果是目录,使用递归方法
# filepath = r'D:\code'
# print(show_dir(filepath))


# 9.输出某个路径及其子目录下所有以 .html 为后缀的文件
# import os
# def print_dir(filepath):
#     for i in os.listdir(filepath):
#         path = os.path.join(filepath, i)
#         if os.path.isdir(path):
#             print_dir(path)
#         if path.endswith(".html"):
#             print(path)
# filepath = r'D:\code'
# print(print_dir(filepath))


# 10.把原字典的键值对颠倒并生产新的字典
# dict1 = {"A":"a","B":"b","C":"c"}
# dict2 = {y:x for x,y in dict1.items()}
# print(dict2)、



# 11.打印九九乘法表
# for i in range(1, 10):
#     for j in range(1, i+1):
#         print('{}x{}={}\t'.format(j, i, i*j), end='')
#         print("%d x %d = %d \t"%(i, j, i*j),end='')
#     print('')
# 通过指定end参数的值,可以取消在末尾输出回车符,实现不换行



# 12.替换列表中所有的3为3a
# num = ["harden","lampard",3,34,45,56,76,87,78,45,3,3,3,87686,98,76]
# # print(num.count(3))
# # print(num.index(3))
# for i in range(num.count(3)):    # 获取3出现的次数
#     ele_index = num.index(3)     # 获取首次3出现的坐标
#     num[ele_index]="3a"          # 修改3为3
#     print(num)


# 13.打印每个名字
# L = ["James","Meng","Xin"]
# for i in range(len(L)):
#     print("Hello,%s"%L[i])
# **善于使用rang(),会使问题变得简单

# 14.合并去重
# list1 = [2,3,8,4,9,5,6]
# list2 = [5,6,10,17,11,2]

# list3 = list1 + list2

# print(list3)                   # 不去重只进行两个列表的组合
# print(set(list3))              # 去重,类型为set需要转换成list
# print(list(set(list3)))


# 15.随机生成验证码的两种方式
# 1.
# import random
# list1 = []
# for i in range(65,91):      
#     list1.append(chr(i))    # 通过for循环遍历asii追加到空列表中
# for j in range(97,123):
#     list1.append(chr(i))
# for k in range(48,58):
#     list1.append(chr(i))
# ma = random.sample(list1,6)
# print(ma)           # 获取到的为列表
# ma = ''.join(ma)    # 将列表转化为字符串
# print(ma)

# 2.
# import random,string
# str1 = "0123456789"
# str2 = string.ascii_letters   # string.ascii_letters 包含所有字母 (大写或小写)的字符串
# str3 = str1 + str2            # 多个字符中选取特定数量的字符  
# ma1 = random.sample(str3,6)   # 使用join拼接转换为字符串
# ma1 = ''.join(ma1)            # 使用join拼接转换为字符串
# print(ma1)                    # 通过引入string模块和random,模块使用现有的方法

#随机数字小游戏
# import random
# i = 1
# a = random.randint(0,100)
# b = int(input('请输入0-100中的一个数字\n然后查看是否与电脑一样:'))
# while a != b:
#     if a > b:
#         print('你第%d输入的数字小于电脑随机数字'%i)
#         b = int(input('请再次输入数字'))
#     else:
#         print('你第%d输入的数字大于电脑随机数字'%i)
#         b = int(input('请再次输入数字:'))
#     i+=1
# else:
#     print('恭喜你,你第%d次输入的数字与电脑的随机数字%d一样'%(i,b))



# 16.计算平方根
# num = float(input("请输入一个数字:"))
# num_sqrt = num ** 0.5
# print(' %0.2f 的平方根为 %0.2f'%(num ,num_sqrt))



# 17.判断字符串是否只由数字组成
# def is_number(s):
#     try:
#         float(s)
#         return True
#     except ValueError:
#         pass

#     try:
#         import unicodedata
#         unicodedata.numeric(s)
#         return True
    
#     except (TypeError, ValueError):
#         pass

#     return False
# chri = '123'
# print(chri.isdigit())           # 检测字符串是否只由数字组成
# print(chri.isnumeric())         # 检测字符串是否由数字组成,这种方法是只针对unicode对象



# 18.判断奇偶数

# 1.
# num = int(input('输入一个数字:'))
# if (num % 2) == 0:
#     print("{0} 是偶数".format(num))
# else:
#     print("{0} 是奇数".format(num))

# 2.
# while True:
#     try:
#         num = int(input('输入一个整数:'))
#     except ValueError:
#         print('输入的不是整数!')
#         continue
#     if num % 2 == 0:
#         print('偶数')
#     else:
#         print('奇数')
#     break




# 19.判断闰年

# 1.
# year = int(input('输入一个年份:'))
# if (year % 4) == 0:
#     if (year % 100) == 0:
#         if (year % 400) == 0:
#             print('{0} 是闰年'.format(year)) # 整百年能被400整除的是闰年
#         else:
#             print('{0} 不是闰年'.format(year)) 
#     else:
#         print('{0} 是闰年'.format(year))     # 非整百年能被4整除的为闰年
# else:
#     print('{0} 不是闰年'.format(year))

# 2.
# year = int(input('请输入一个年份:'))
# if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
#     print('{0}是闰年'.format(year))
# else:
#     print('{0}不是闰年'.format(year))



# 20.获取最大值
# 1.
# N = int(input('输入需要对比大小数字的数:'))
# print('请你输入需要对比的数字:')
# num = []
# for i in range(1,N+1):
#     temp = int(input('输入第 %d 个数字' % i))
#     num.append(temp)

# print('你输入的数字为:', num)
# print('最大值为:', max(num))

# 2.
# N = int(input('输入需要对比大小数字的个数:\n'))
# num = [ int(input('请输入第 %d 个对比数字:\n'%i))for i in range(1,N+1)]
# print('你输入的数字为:',num)
# print('最大值为:',max(num))

# 21.斐波那契数列
# 斐波那契数列指的是这样⼀个数列 0, 1, 1, 2, 3, 5, 8, 13;特别指出:第0项是0,第1
# 项是第一个1。从第三项开始,每⼀项都等于前两项之和。
# 判断输入的值是否合法
# if nterms <= 0:
#     print('请输入一个正整数。')
# elif nterms == 1:
#     print('斐波那契数列:')
#     print(n1)
# else:
#     print('斐波那契数列:')
#     print(n1, ',', n2, end=' , ')
#     while count < nterms:
#         nth = n1 + n2
#         print(n1+n2, end=" , ")
#         # 更新值
#         n1 = n2
#         n2 =nth
#         count +=1



# 22.十进制转二进制,八进制,十六进制
# 获取输入十进制数
# dec = int(input('输入数字:'))
# print('十进制为:', dec)
# print('转换为二进制为:', bin(dec))
# print('转换为八进制为:', oct(dec))
# print('转换为十六进制为:', hex(dec))



# 23.最大公约数

# 1.
# def hcf (x, y):
#     '''该函数返回两个数的最大公约数'''
#     # 获取最小值
#     if x > y:
#         smaller = y
#     else:
#         smaller = x
    
#     for i in range(1, smaller + 1):
#         if((x % i == 0 ) and (y % i == 0)):
#             hcf = i
    
#     return hcf
# print(hcf(x=3, y=5))

# 2.
# 用户输入两个数字
# num1 = int(input('请输入第一个数字:'))
# num2 = int(input('请输入第二个数字:'))

# print(num1, '和', num2, '的最大公约数为', hcf(num1,num2))


# 23.最小公倍数
# 定义函数
# def lcm(x,y):

#     # 获取最大的数
#     if x > y:
#         greater = x
#     else:
#         greater = y
    
#     while (True):
#         if((greater % x == 0) and (greater % y == 0)):
#             lcm = greater
#             break
#         greater += 1
#     return lcm

# num1 = int(input('输入第一个数字:'))
# num2 = int(input('输入第二个数字:'))
# print(num1, '和', num2,'的最小公倍数为:', lcm(num1, num2))


# 24.简单计算器
# 定义函数
# def add(x, y):
#     #相加
#     return x + y

# def subtract(x, y):
#      #相减# 
#     return x - y

# def multiply(x, y):
#     #相乘'''
#     return x * y

# def divide(x, y):
#     #相除'''
#     return x / y 

# # 用户输入
# print('选择运算:')
# print('1.相加')
# print('2.相减')
# print('3.相乘')
# print('4.相除')

# choice = input('输入你的选择(1/2/3/4):')

# num1 = int(input("请输入第一个数字:"))
# num2 = int(input("请输入第二个数字:"))

# if choice == '1':
#     print(num1, "+", num2, '=', add(num1, num2))
# elif choice == '2':
#     print(num1, "-", num2, '=', subtract(num1, num2))
# elif choice == '3':
#     print(num1, "*", num2, '=', multiply(num1, num2))
# elif choice == '4':
#     if num2 != 0:
#         print(num1, "/", num2, '=', divide(num1, num2))
#     else:
#         print('分母不能为0')
# else:
#     print('非法输入')



# 25.生成日历
# 引入日历模块
# import calendar

# # 输入指定年月
# yy = int(input('输入年份:'))
# mm = int(input('输入月份:'))

# # 显示日历
# print(calendar.month(yy, mm))



# 26.文件IO
# 写文件
# with open('test1.txt','wt') as out_file:
#     out_file.write('该文本会写入到文件中\n看到我了吧!')

# # Read a file
# with open('text1.txt','rt') as in_file:
#     text = in_file.read()
# print(text1)



# 27.字符串判断
# print('测试实例一')
# str = 'runoob.com'
# print(str.isalnum())    # 判断所有字符都是数字或者字母
# print(str.isalpha())    # 判断所有字符都是字母
# print(str.isdigit())    # 判断所有字符都是数字
# print(str.islower())    # 判断所有字符都是小写
# print(str.isupper())    # 判断所有字符都是大写
# print(str.istitle())    # 判断所有单词都是首字母大写,像标题
# print(str.isspace())    # 判断所有字符都是空白字符,\t,\n,\r

# print('-------------------')




# 28.字符串大小写转换
# str = 'https://www.baidu.com'
# print(str.upper())          # 把所有字符中的小写字母转换成大写字母
# print(str.lower())          # 把所有字符中的大写字母转换小写字幕
# print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
# print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写




# 29.计算每个月天数
# import calendar
# monthRange = calendar.monthrange(2016,9)
# print(monthRange)


# 30.获取昨天的日期
# 引入datetime 模块
# import datetime
# def getYesterday():
#     today = datetime.date.today()
#     oneday = datetime.timedelta(days=1)
#     yesterday = today - oneday
#     return yesterday

# # 输出
# print(getYesterday())

猜你喜欢

转载自blog.csdn.net/qq_26086231/article/details/113808007