第二章 变量和简单类型 习题答案
1.使用数值类型声明多个变量,并使用不同方式为不同的数值类型的变量赋值。熟悉每种数据类型的赋值规则和表示方式。
i = 100
f = 88.99
print(i)
print(type(i))
print(f)
print(type(f))
hex_value1 = 0x13
hex_value2 = 0XaF
print("hexValue1的值为:", hex_value1)
print("hexValue2的值为:", hex_value2)
# 以0b或0B开头的整数数值是二进制的整数
bin_val = 0b111
print('bin_val的值为:', bin_val)
bin_val = 0B101
print('bin_val的值为:', bin_val)
# 以0o或0O开头的整数数值是二进制的整数
oct_val = 0o54
print('oct_val的值为:', oct_val)
oct_val = 0O17
print('oct_val的值为:', oct_val)
af1 = 5.2345556
# 输出af1的值
print("af1的值为:", af1)
af2 = 25.2345
print("af2的类型为:", type(af2))
f1 = 5.12e2
print("f1的值为:", f1)
f2 = 5e3
print("f2的值为:", f2)
print("f2的类型为:", type(f2)) # 看到类型为float
ac1 = 3 + 0.2j
print(ac1)
print(type(ac1)) # 输出 complex类型
ac2 = 4 - 0.1j
print(ac2)
# 复数运行
print(ac1 + ac2) # 输出 (7+0.1j)
2.使用数学运算符、逻辑运算符编写40个表达式,先自行计算各表达式的值,然后通过程序输出这些表达式的值进行对比,看看能否做到一切都在掌握之中。
#算术运算符
num1 = 9 + 2
print("加:%d" % num1);
num2 = 9 - 2
print("减:%d" % num2);
num3 = 9 * 2
print("乘:%d" % num3);
num4 = 9 / 2
print("除:%d" % num4);
# 取整除
num5 = 9 // 2
print("取整除:%d" % num5);
# 取余数
num6 = 9 % 2
print("取余数:%d" % num6);
# 取次幂
num7 = 9 ** 2
print("取次幂:%d" % num7);
# 比较运算符
a = 7
b = 3
print("a == b: %s" % (a == b));
print("a != b: %s" % (a != b));
print("a > b: %s" % (a > b));
print("a < b: %s" % (a < b));
a = 3
print("a >= b: %s" % (a >= b));
print("a <= b: %s" % (a <= b));
# 逻辑运算符
# and(与)有一个表达式为False,则返回False
print("True and True: %s"%(True and True));
print("True and False: %s"%(True and False));
print("False and False: %s"%(False and False));
# or(或) 有一个表达式为True,则返回True
print("True or True: %s"%(True or True));
print("True or False: %s"%(True or False));
print("False or False: %s"%(False or False));
# not(或) 取反
print("not(True and True): %s"%(not(True and True)));
print("not(False and False): %s"%(not(False and False)));
3.从标准输入读取两个整数并打印两行,其中第一行输出两个整数的整除结果;第二行输出两个整数的带小数的除法结果。不需要执行任何四舍五入或格式化操作。
num1, num2 = int(input("请输入第一个整数:")), int(input("请输入第二个整数:"))
print(num1 // num2)
print(num1 / num2)
4.从标准输入读取两个整数并打印三行,其中第一行包含两个数的和;第二行包含两个数的差(第一个数减第二个数);第三行包含两个数的乘积。
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print(a + b)
print(a - b)
print(a * b)
5.用户输入一个字符串和一个子串,程序必须打印出给定子串在目标字符串中出现的次数。字符串遍历将从左到右进行,而不是从右到左。例如给定’ABCDCDC’和’CDC’,程序输出“2”。
string, sub_string = input("请输入字符串:"), input("请输入子串:")
# 字符串长度
str_len = len(string)
# 子串长度
sub_str_len = len(sub_string)
len1 = 0
for i in range(str_len - 1 ):
if string[i:i + sub_str_len] == sub_string:
len1 += 1
print("子串在字符串中出现的次数:%d" % len1)
6.给定任意一个整数,打印出该整数的十进制、八进制、十六进制、二进制形式字符串。
num = int(input("请输入一个整数:"))
print("十进制:%d" % num)
print("八进制:%s" % oct(num))
print("十六进制(大写):%s" % hex(num))
print("二进制:%s" % bin(num))
7.通过学习我们知道str是不可变的,要实现一个功能:用户输入一个字符串,修改字符串中那个位置的字符,程序就会输出修改后的结果。比如用户输入:
‘fkjava.org’
6 -
程序会输出:‘fkjava-org’
# 原字符串
string = input("请输入原字符串:")
i, character = input("请输入位置和替换字符:").split()
position = int(i)
str_new = string[:position] + character + string[position+1:]
print(str_new)