1、编写一个程序,提示用户输入一个整数,如果输入的不是整数,则让用户重新输入,直到是一个整数为止。例如:第一次输入abc,第二次输入12.5,第三次输入6,执行效果如下。
# 需在终端中运行input_num = input("请输入一个整数")while not input_num.isdigit():print("输入的不符合要求,请重新输入")input_num = input("请输入一个整数")print("输入正确,你输入的整数为:",input_num)
2、编写一个程序,模拟打印下载进度效果,每隔0.2秒打印一次下载进度,要求下载进度只在一行打印,每次打印的进度不同,下载完成后打印下载完成!(程序休眠、同一行打印不换行)效果如下:
import osimport timefor i in range(100):time.sleep(0.2)print("当前的下载进度为:",i,"%")# macosos.system('clear')# windows#os.system("cls")print("下载完成")
3、编写一个程序,随机生成1000个字母,包含大写字母和小写字母,然后统计各个字母出现的次数,统计时忽略字母的大小写,最后将统计结果按照字母出现的次数从高到低排序输出。
import randomfrom collections import Counteralphabet_list = [chr(x) for x in range(65,122) if x not in range(91,97)]print(alphabet_list)all_alphabet_list = random.choices(alphabet_list,k=1000)print(all_alphabet_list)print(Counter(all_alphabet_list).most_common())
4、已知某个班级学生年龄分布如下:
编写程序将学生按照年龄分类,并按照年龄从大到小打印出各个年龄下的学生姓名列表。
ages = [("a",19),("b",20),("c",20),("d",19),("e",21),("f",19),("g",18),("h",19),("i",19),("j",21),("k",18),("l",19),("m",18),("n",21),("o",18),("p",19),("q",18),("r",19),("s",20),("t",19),("u",19),("v",20),("w",19),("x",20),("y",20),("z",19)]import pandas as pdages = pd.DataFrame(ages,columns=["姓名","年龄"])ages_list = list(ages.groupby(ages["年龄"]))print(ages_list)for i in range(len(ages_list)):print("年龄",ages_list[i][0])print("姓名",list(ages_list[i][1]["姓名"]))
5、对于青蛙跳台阶的各种跳法,用每一步跳多少的数字列表,列出每一种跳的序列。例:
count = 0nums = [1,2]def backtrack(n,res):if n==0:global countcount = count+1print(res)if n<0:returnfor i in range(len(nums)):res.append(nums[i])backtrack(n-nums[i],res)res.pop()def climbStairs(n):res = []backtrack(n,res)climbStairs(4)print(count)
6、对于高校信息表统计,分别显示各省的985、211、一般院校的个数,以及每类学校的学校名称,一个省的每类学校的名称组成一个列表,放在一个单元格中。表格格式和内容自定。
import pandas as pddf = pd.read_excel("school.xls")provinces = list(df.groupby("所在省份").count().index)new_df = pd.DataFrame(columns=["省份","985院校","211院校","普通院校"])count = 0for province in provinces:new_df.loc[count]=[province,list(df.loc[(df["所在省份"] == province)&(df["是否985"] == "是")]["招生单位名称"][:]),list(df.loc[(df["所在省份"] == province)&(df["是否211"] == "是")]["招生单位名称"][:]),list(df.loc[(df["所在省份"] == province)&(df["是否985"] == "否")&(df["是否211"] == "否")]["招生单位名称"][:])]count = count+1new_df.to_excel("生成的table.xls",index=False)
7、设计一个银行账户类:Account,该类包含三个成员变量:账号、用户名、余额。该类提供三个方法:存款、取款、转账。初始化时,账户余额为0,取款和转账前需判断余额是否充足,余额不足时,操作失败,打印相关提示信息。如果两个账户账号相同时,则认为它们是同一个账户。打印账户对象时,将会显示账号、用户名、余额等基本信息。(提示:重写eq方法、str方法)
class Account:__account_list = []def __init__(self,account_number,username,balance=0):self.__account_number = account_numberself.__username = usernameself.__balance = balanceAccount.__account_list.append(self)def save_money(self,amount):self.__balance = self.__balance + amountdef withdraw_money(self,amount):self.__balance = self.__balance - amountdef transfer(self,account_number,amount):for account in Account.__account_list:if account.__account_number == account_number and self != account:print(account)confirm = eval(input("是否确定为该账户,确定按1,取消按0"))if confirm == True:self.__balance = self.__balance-amountaccount.__balance = account.__balance-amountdef __str__(self) -> str:return "账户:"+str(self.__account_number)+"\n用户名"+str(self.__username)+"\n余额"+str(self.__balance)def __eq__(self,other):return self.__account_number == other.__account_numberaccount1 = Account(123,"qwe")account1.save_money(1000)account1.withdraw_money(100)account2 = Account(345,"asd")account1.transfer(345,100)print(account1)print(account2)
