1、编写一个程序,提示用户输入一个整数,如果输入的不是整数,则让用户重新输入,直到是一个整数为止。例如:第一次输入abc,第二次输入12.5,第三次输入6,执行效果如下。
    image.png

    1. # 需在终端中运行
    2. input_num = input("请输入一个整数")
    3. while not input_num.isdigit():
    4. print("输入的不符合要求,请重新输入")
    5. input_num = input("请输入一个整数")
    6. print("输入正确,你输入的整数为:",input_num)

    2、编写一个程序,模拟打印下载进度效果,每隔0.2秒打印一次下载进度,要求下载进度只在一行打印,每次打印的进度不同,下载完成后打印下载完成!(程序休眠、同一行打印不换行)效果如下:
    image.png

    1. import os
    2. import time
    3. for i in range(100):
    4. time.sleep(0.2)
    5. print("当前的下载进度为:",i,"%")
    6. # macos
    7. os.system('clear')
    8. # windows
    9. #os.system("cls")
    10. print("下载完成")

    3、编写一个程序,随机生成1000个字母,包含大写字母和小写字母,然后统计各个字母出现的次数,统计时忽略字母的大小写,最后将统计结果按照字母出现的次数从高到低排序输出。

    1. import random
    2. from collections import Counter
    3. alphabet_list = [chr(x) for x in range(65,122) if x not in range(91,97)]
    4. print(alphabet_list)
    5. all_alphabet_list = random.choices(alphabet_list,k=1000)
    6. print(all_alphabet_list)
    7. print(Counter(all_alphabet_list).most_common())

    4、已知某个班级学生年龄分布如下:
    编写程序将学生按照年龄分类,并按照年龄从大到小打印出各个年龄下的学生姓名列表。

    1. ages = [("a",19),("b",20),("c",20),("d",19),("e",21),("f",19),("g",18),("h",19),
    2. ("i",19),("j",21),("k",18),("l",19),("m",18),("n",21),("o",18),("p",19),("q",18),
    3. ("r",19),("s",20),("t",19),("u",19),("v",20),("w",19),("x",20),("y",20),("z",19)]
    4. import pandas as pd
    5. ages = pd.DataFrame(ages,columns=["姓名","年龄"])
    6. ages_list = list(ages.groupby(ages["年龄"]))
    7. print(ages_list)
    8. for i in range(len(ages_list)):
    9. print("年龄",ages_list[i][0])
    10. print("姓名",list(ages_list[i][1]["姓名"]))

    5、对于青蛙跳台阶的各种跳法,用每一步跳多少的数字列表,列出每一种跳的序列。例:
    image.png

    1. count = 0
    2. nums = [1,2]
    3. def backtrack(n,res):
    4. if n==0:
    5. global count
    6. count = count+1
    7. print(res)
    8. if n<0:
    9. return
    10. for i in range(len(nums)):
    11. res.append(nums[i])
    12. backtrack(n-nums[i],res)
    13. res.pop()
    14. def climbStairs(n):
    15. res = []
    16. backtrack(n,res)
    17. climbStairs(4)
    18. print(count)

    6、对于高校信息表统计,分别显示各省的985、211、一般院校的个数,以及每类学校的学校名称,一个省的每类学校的名称组成一个列表,放在一个单元格中。表格格式和内容自定。

    1. import pandas as pd
    2. df = pd.read_excel("school.xls")
    3. provinces = list(df.groupby("所在省份").count().index)
    4. new_df = pd.DataFrame(columns=["省份","985院校","211院校","普通院校"])
    5. count = 0
    6. for province in provinces:
    7. new_df.loc[count]=[province,
    8. list(df.loc[(df["所在省份"] == province)&(df["是否985"] == "是")]["招生单位名称"][:]),
    9. list(df.loc[(df["所在省份"] == province)&(df["是否211"] == "是")]["招生单位名称"][:]),
    10. list(df.loc[(df["所在省份"] == province)&(df["是否985"] == "否")&(df["是否211"] == "否")]["招生单位名称"][:])]
    11. count = count+1
    12. new_df.to_excel("生成的table.xls",index=False)

    7、设计一个银行账户类:Account,该类包含三个成员变量:账号、用户名、余额。该类提供三个方法:存款、取款、转账。初始化时,账户余额为0,取款和转账前需判断余额是否充足,余额不足时,操作失败,打印相关提示信息。如果两个账户账号相同时,则认为它们是同一个账户。打印账户对象时,将会显示账号、用户名、余额等基本信息。(提示:重写eq方法、str方法)

    1. class Account:
    2. __account_list = []
    3. def __init__(self,account_number,username,balance=0):
    4. self.__account_number = account_number
    5. self.__username = username
    6. self.__balance = balance
    7. Account.__account_list.append(self)
    8. def save_money(self,amount):
    9. self.__balance = self.__balance + amount
    10. def withdraw_money(self,amount):
    11. self.__balance = self.__balance - amount
    12. def transfer(self,account_number,amount):
    13. for account in Account.__account_list:
    14. if account.__account_number == account_number and self != account:
    15. print(account)
    16. confirm = eval(input("是否确定为该账户,确定按1,取消按0"))
    17. if confirm == True:
    18. self.__balance = self.__balance-amount
    19. account.__balance = account.__balance-amount
    20. def __str__(self) -> str:
    21. return "账户:"+str(self.__account_number)+"\n用户名"+str(self.__username)+"\n余额"+str(self.__balance)
    22. def __eq__(self,other):
    23. return self.__account_number == other.__account_number
    24. account1 = Account(123,"qwe")
    25. account1.save_money(1000)
    26. account1.withdraw_money(100)
    27. account2 = Account(345,"asd")
    28. account1.transfer(345,100)
    29. print(account1)
    30. print(account2)