
Python基本数据类型-课堂练习【pyhton123题库】
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。
基本数据类型-课堂练习
1、数字形式转换 I
类别:Python 基本数据类型
获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。
0 到 9 对应的中文字符分别是:零一二三四五六七八九
**示例1:**
输入:123
输出:一二三
**示例2:**
输入:9876543210
输出:九八七六五四三二一零
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
# 定义数字和中文字符的对应关系
num_to_chinese = {
'0': '零',
'1': '一',
'2': '二',
'3': '三',
'4': '四',
'5': '五',
'6': '六',
'7': '七',
'8': '八',
'9': '九'
}
# 获取用户输入的数字
# num = input("请输入一个正整数:")
num = input("")
# 将数字转换为中文字符
result = ''
for digit in num:
result += num_to_chinese[digit]
# 输出结果
# print("对应的中文字符表示为:", result)
print(result)
2、平方根格式化
描述
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。
输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。
如果结果超过30个字符,则以结果宽度为准。
输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 10 |
+++++++++++++++++++++++++3.162 |
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
# 获取用户输入的整数
num = eval(input())
# 计算平方根并保留小数点后3位
sqrt_result = pow(num, 0.5)s
formatted_result = "{:+>30.3f}".format(sqrt_result)
# 输出结果
print(formatted_result)
3、商店找钱给顾客
描述
商店需要找钱给顾客,现在只有50元,5元和1元的人民币若干张。输入一个整数金额值,给出找钱的方案,假设人民币足够多,且优先使用面额大的钱币。
请注意:
获得输入请使用input(“”),不要增加提示信息
money=eval(input())
#输入相应的代码
print("50yuan:",m50)
print("5yuan:",m5)
print("1yuan:",m1)
输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 283 | 50元面额需要的张数: 5 5元面额需要的张数: 6 1元面额需要的张数: 3 |
示例2 | 189 | 50元面额需要的张数: 3 5元面额需要的张数: 7 1元面额需要的张数: 4 |
请注意:题目输出金额数值前有空格
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
# 获取输入金额
money = eval(input())
# 计算各面额需要的张数
m50 = money // 50
money %= 50
m5 = money // 5
money %= 5
m1 = money
# 输出结果,注意添加空格
# print("50元面额需要的张数:", m50)
# print("5元面额需要的张数:", m5)
# print("1元面额需要的张数:", m1)
print("50yuan:",m50)
print("5yuan:",m5)
print("1yuan:",m1)
4、汉字的 Unicode 编码值
类别:Python 基本数据类型
从键盘输入一个汉字,在屏幕上显示输出该汉字的 Unicode 编码值,请完善代码。
#请输入一个汉字:
s = input()
print("\"{}\"汉字的Unicode编码:{}".format(___①___))
**示例1:**
输入:"国"
输出:""国"汉字的Unicode编码:22269"
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
# 请输入一个汉字:
s = input()
print("\"{}\"汉字的Unicode编码:{}".format(s, ord(s)))
5、输出数字对应星期名称
类型:字符串,切片
描述
输入一个1-7之间的整数,输出对应星期的中文名称
输入
输入一个1-7之间的整数,要求对数字范围进行判断
输出
星期的中文名称
示例
(点击编辑器左上角{;}按钮编辑代码框)
输入
5
输出
星期五
输入
7
输出
星期日
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
# 输入
n = int(input())
# 定义星期名称列表
weekdays = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
# 根据输入的数字获取对应的星期名称
if 1 <= n <= 7:
print(weekdays[n - 1])
else:
print("输入错误,请输入1到7之间的整数")
基本数据类型-课后作业
单项选择题
1、字符串是一个连续的字符序列,哪个选项可以实现打印字符信息的换行?
-
A 使用“\换行”
-
B 使用空格
-
C 使用转义符\
-
D 使用\n
【答案】D
【解析】暂无解析
2、val=pow(2,1000),请用一行代码返回val结果的长度值。
- A len(val)
- B len(str(val))
- C 其他答案均不正确
- D len(pow(2,1000))
【答案】B
【解析】暂无解析
3、哪个选项不是Pythoni语言的整数类型?
- A 88
- B 0B1010
- C 0x9a
- D 0E99
【答案】D
【解析】暂无解析
4、以下不是Python数据类型的是:
- A 集合
- B 字节串
- C 数组
- D 复数
【答案】C
【解析】暂无解析
5、下面代码的输出结果是print(0.1+0.2==0.3)
- A False
- B True
- C false
- D true
【答案】A
【解析】暂无解析
6、表达式3+5%6*2//8的值是
- A 4
- B 5
- C 6
- D 7
【答案】A
【解析】暂无解析
7、转换小写
类别:Python 基本数据类型
获得用户输入的一个字符串,请输出其全小写形式。
**示例1:**
输入:"Alice"
输出:"alice"
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
s = input()
print(s.lower())
8、恺撒密码
描述
恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26
上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26
假设用户可能使用的输入包含大小写字母azAZ、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
输入
示例1: python is good
输出
示例1: sbwkrq lv jrrg
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
# 恺撒密码加密
def Caesar_PW_Encryption():
# inputText = input("请输入明文文本: ")
inputText = input()
for index in inputText:
if "a" <= index <= "z":
print(chr(ord("a") + (ord(index) - ord("a") + 3) % 26), end='')
elif "A" <= index <= "Z":
print(chr(ord("A") + (ord(index) - ord("A") + 3) % 26), end='')
else:
print(index, end='')
if __name__ == '__main__':
# 恺撒密码加密
Caesar_PW_Encryption()
9、日期分析处理
类型:字符串
描述
一个8位表示的年月日,如20200220,前4位表示年份,5-6位表示月份,7-8位表示日期。编写程序对日期数据进行处理和分析。
输入格式
第一行输入一个8位长度的日期形式(题目确保输入的字符串只包含0-9的数字,且长度为8位)
第二行输入一个分割符号sign
输出格式
- 根据输入数据中表示年份的数字判断是否为闰年。
- 输出当前月份共有多少天?
- 输出用sign符号分隔的日期输出,例如输入"/",输出2020/09/09。
- 只考虑月份和日期的合法性,判断输入的数字是否为一个合法的日期。
- 输出当前月份的单词和缩写形式
输入输出示例 示例仅为格式展示,与测试数据无关
示例 1
输入:
20200229
/
输出:
2020年是闰年
2020年2月有29天
2020/02/29
20200229是合法日期
2月英文是February,缩写为Feb.
示例 2
输入:
18000231
@
输出:
1800年不是闰年
1800年2月有28天
1800@02@31
18000231是非法日期
2月英文是February,缩写为Feb.
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
def leap(current_date):
"""接收一个用8个字符表示日期的字符串为参数,判断这个日期中的年份是否为闰年
返回值为布尔型。
@参数 current_date:表示日期,字符串类型
闰年的判定方法是:能被400整除或能被4整除且同时不能被100整除的是闰年。
"""
year = int(current_date[:4])
return (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0))
def legal_judge(current_date):
"""接收一个用8个字符表示日期的字符串为参数,判定日期的合法性,返回值为布尔型。
1,3,5,7,8,10,12月各31天,4,6,9,11各30天,闰年2月29天,平年2月28天。
@参数 current_date:表示日期,字符串类型
"""
year = int(current_date[:4])
month = int(current_date[4:6])
day = int(current_date[6:])
if month in [1, 3, 5, 7, 8, 10, 12]:
return day <= 31
elif month in [4, 6, 9, 11]:
return day <= 30
elif month == 2:
if leap(current_date):
return day <= 29
else:
return day <= 28
else:
return False
def days_of_month(current_date):
"""接收一个用8个字符表示日期的字符串为参数,若月份合法,返回这个月份有多少天的整数,
否则返回字符串"'**月份数字不合法'",**表示月份。
参数 current_date:表示日期,字符串类型
"""
year = int(current_date[:4])
month = int(current_date[4:6])
if month in [1, 3, 5, 7, 8, 10, 12]:
return 31
elif month in [4, 6, 9, 11]:
return 30
elif month == 2:
return 29 if leap(current_date) else 28
else:
return f"{month}月数字不合法"
def name_of_month(current_date):
"""接收一个用8个字符表示日期的字符串为参数,返回这个月份对应的英文单词及其缩写形式。
9月缩写为'Sept.',此时返回值为:'September','Sept.'
"""
month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
month_abbrs = ["Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."]
month = int(current_date[4:6])
return month_names[month - 1], month_abbrs[month - 1]
def separate_date(current_date, symbol):
"""接收一个用8个字符表示日期的字符串和一个符号为参数,返回用该符号分隔的日期,字符串类型。
@参数 current_date:表示日期,字符串类型
@参数 symbol:分隔符号,字符串类型
例如传入'20201031'和"/",返回字符串'2020/09/09'
"""
return f"{current_date[:4]}{symbol}{current_date[4:6]}{symbol}{current_date[6:]}"
def test(current_date):
if leap(current_date):
print(f'{current_date[:4]}年是闰年')
else:
print(f'{current_date[:4]}年不是闰年')
days = days_of_month(current_date)
print(f'{current_date[:4]}年{int(current_date[4:6])}月有{days}天')
print(separate_date(current_date, sign))
if legal_judge(current_date):
print(f'{current_date}是合法日期')
else:
print(f'{current_date}是非法日期')
month_name, month_abbr = name_of_month(current_date)
print(f'{int(current_date[4:6])}月英文是{month_name},缩写为{month_abbr}')
if __name__ == '__main__':
CurrentDate = input()
sign = input()
test(CurrentDate)
10、学费计算
类型:数值运算
描述
大学第一学期必选课程及其学分如下:
Python | 高等数学 | 大学英语 | 大学体育 | 军事理论 | 哲学 |
---|---|---|---|---|---|
3学分 | 4学分 | 4学分 | 2学分 | 2学分 | 2学分 |
请计算并输出大学第一学期共修多少学分?输入每学分应缴纳的学费(整数,单位为元),计算并输出第一学期应缴纳多少学费?输出格式请参考输入输出示例。
输入
输入一个表示每学分应缴纳的学费的整数
输出
按示例格式分两行输出学分和学费
示例
输入:
328
输出:
你本学期选修了17个学分。
你应缴纳的学费为5576元。
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
python = 3
math = 4
english = 4
physical_education = 2
military_theory = 2
philosophy = 2
tuition_per_credit = int(input())
total_credits = (python + math + english + physical_education + military_theory + philosophy)
total_tuition = total_credits * tuition_per_credit
print(f'你本学期选修了{total_credits}个学分。')
print(f'你应缴纳的学费为{total_tuition}元。')
11、输出格式控制 II
类别:Python 基本数据类型
给定一个整数数字 0x1010
,请依次输出 Python 语言中十六进制、十进制、八进制和二进制表示形式,使用英文逗号分隔。
**示例1:**
输入:无
输出:"0x1010,4112,0o10020,0b1000000010000"
代码:
# -*- codeing = utf-8 -*-
# @Autor:为一道彩虹
if __name__ == '__main__':
# 给定一个整数数字 0x1010,请依次输出 Python 语言中十六进制、十进制、八进制和二进制表示形式,使用英文逗号分隔。
num = 0x1010 # 给定的整数数字,以十六进制表示
hex_num = hex(num) # 将给定的整数数字转换为十六进制表示形式
dec_num = str(num) # 将给定的整数数字转换为十进制表示形式
oct_num = oct(num) # 将给定的整数数字转换为八进制表示形式
bin_num = bin(num) # 将给定的整数数字转换为二进制表示形式
# 使用格式化字符串输出结果,分别按照十六进制、十进制、八进制和二进制的顺序,以英文逗号分隔打印出来
print("{},{},{},{}".format(hex_num, dec_num, oct_num, bin_num))
先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!
更多推荐
所有评论(0)