输入年、月(数1~12),日(数1~31)再使用相应的月份名等将日期打印出来
类似输入:
Year:1989
Month(1-12):08
Day(1-31):16
输出:
August 16th,1989
源码:
# 输入年月日数据
year = input("Year:")
month = int(input("Month(1-12):"))
day = int(input("Day(1-31):"))
# 用列表存储每个月份对应的英文、每天对应的英文后缀
months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"]
days = ['st', 'nd', 'rd'] + 17 * ['th'] +
['st', 'nd', 'rd'] + 7 * ['th'] + ['st']
# 从列表中直接取出对应月和对应天的英文后缀值
monthStr = months[month - 1]
daySuffix = days[day - 1]
# 重新拼接 dayStr
dayStr = str(day) + daySuffix
print(monthStr + " " + dayStr + "," + year)
截图:
将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如 “Hello Eric, would you like to learn some Python today?”
源码:
name = input("Please input your name:")
print(name + ", welcome! Do you like Python?")
截图:
调整名字的大小写:将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名
源码:
name = input("Please input your name:")
name = name.lower()
print(name + ", welcome! Do you like Python?")
name = name.upper()
print(name + ", welcome! Do you like Python?")
name = name.capitalize()
print(name + ", welcome! Do you like Python?")
截图:
名言 1:找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):
Albert Einstein once said, “A person who never made a mistake never tried anything new.”
源码:
name = "Albert Einstein" sentence = ""A person who never made a mistake never tried anything new."" print(name + " once said, " + sentence)
截图:
名言 2:重复练习 4,但将名人的姓名存储在变量 famous_person 中,再创建要显示的消息,并将其存储在变量 message 中,然后打印这条消息
源码:
name = "Albert Einstein" sentence = ""A person who never made a mistake never tried anything new."" print(name + " once said, " + sentence)
截图:
剔除人名中的空白:存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合 “t” 和 “n” 各一次。打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数 lstrip()、 rstrip() 和 strip() 对人名进行处理,并将结果打印出来
源码:
name = " St prinng -_ t- n B ent ar"
print("Before Skip")
print(name)
# 去除字符串中的换行符和制表符
name = name.replace("n","").replace("r","").replace("t","")
# 去除字符串前后、中间的空格
name = name.lstrip().rstrip().strip().replace(" ","")
print("After Skip")
print(name)
截图:
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
源码:
num = input("Please input a number:")
# 将输入的数字反转后放入列表
l = list(reversed(num))
result = []
# 如果结果中不存在对应数字则放入列表中
for i in l:
if i not in result:
result.append(i)
# 拼接列表并输出
print("".join(result))
截图:
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照 key 值升序进行输出
源码:
# 输入键值对个数
num = int(input("Please the numbers of the key-value group:"))
# key - value 集合,不允许重复
key_value = {}
# 依次输入 key、value
for i in range(num):
key,value = input().split(' ')
key = int(key)
value = int(value)
if(key in key_value):
key_value[key]+= value
else:
key_value[key] = value
print("=====After merged=====")
for x,y in key_value.items():
print(x,y)
截图:
连续输入字符串,请按长度为 8 拆分每个字符串后输出到新的字符串数组;长度不是 8 整数倍的字符串请在后面补数字 0,空字符串不处理
源码:
str1 = input("Please input a string:")
# 如果 str 的长度小于 8,则直接输出并在其后补 0
if len(str1) <= 8:
print(str1 + "0"*(8-len(str1)))
else:
while len(str1) > 8:
# 直接输出前 8 位
print(str1[:8])
# 对 str1 重新赋值
str1 = str1[8:]
# 输出剩余的字符串,补 0 输出
print(str1 + "0"*(8-len(str1)))
截图:
输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照 ASCII 码由小到大排序输出
源码:
from collections import defaultdict
dd = defaultdict(list)
s = input("Please input a string:")
res = ""
# 遍历输入的字符串
for i in set(s):
# 使用 defaultdict 排序存放
dd[s.count(i)].append(i)
for i in sorted(dd.keys(), reverse=True):
res += "".join(sorted(dd[i], key=ord))
print(res)
截图:
在字符串中找出连续最长的数字字符串:
输入:一个字符串
输出:字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度
源码:
str1 = input("Plese input a string:")
# 使用正则表达式匹配 1 ~ n 个数字
value = re.findall(r'd+', str1)
if value != []:
max_list = []
max_str = ""
# 遍历数字串,找到最长的串
for i in value:
if len(max_str) < len(i):
max_list = []
max_str = i
max_list.append(i)
elif len(max_str) == len(i):
max_list.append(i)
print("".join(max_list)+","+str(len(max_str)))
截图:
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序
源码:
str1 = input("Please input a string:")
# 先分别统计每个元素出现的次数,字典存放
d = {}
for i in str1:
if i not in d.keys():
d[i] = 1
else:
d[i] += 1
print(d)
# 再次遍历去掉次数最少的
for j in d.keys():
# 判断等于最小的次数 min(d.values())
if d[j] == min(d.values()):
str1 = str1.replace(j, '')
print(str1)
截图:
输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
源码:
str = input("Please input a string:")
letter = 0
digit = 0
space = 0
other = 0
i = 0
while i < len(str):
ch = str[i]
i += 1
if ch.isalpha():
letter += 1
elif ch.isdigit():
digit += 1
elif ch.isspace():
space += 1
else:
other += 1
print('letter = %d, space = %d, digit = %d, other = %d' % (letter, space, digit, other))
截图:


![[Python语言程序设计]Python 课程作业 1 [Python语言程序设计]Python 课程作业 1](http://www.mshxw.com/aiimages/31/768079.png)
