疯狂Python讲义第二章练习

下面是本人在学习《疯狂python讲义》是对章节练习的实现,每题应该有多种不同的实现方式,如果您有更好的实现方式,请留言,相互交流。

1.使用数值类型声明多个变量,并使用不同方式为不同的数值类型的变量赋值。熟悉每种数据类型的赋值规则和表示方式;

2.使用数学运算符、逻辑运算符编写40个表达式,先自行计算各表达式的值,然后通过程序输出这些表达式的值进行对比,看看能否做到一切尽在掌握中;

3.从标准输入读取两个整数并打印两行,其中第一行输出两个整数的整除结果;第二行输出两个整数的带小数的除法结果。不需要执行任何四舍五入或格式化操作;

#codeing: utf-8
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
print("%d/%d="%(num1,num2),num1/num2)
print("%d//%d="%(num1,num2),num1//num2)
请输入第一个数字:123
请输入第二个数字:12
123/12= 10.25
123//12= 10

4.从标准输入读取两个整数并打印三行,其中第一行包含两个数的和;第二行包含两个数的差(第一个数减第二个数);第三行包含两个数的乘积结果。

#codeing: utf-8
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
print("%d+%d="%(num1,num2),num1+num2)
print("%d-%d="%(num1,num2),num1-num2)
print("%d*%d="%(num1,num2),num1*num2)
请输入第一个整数:123
请输入第二个整数:12
123+12= 135
123-12= 111
123*12= 1476

5.用户输入一个字符串和一个子串,程序必须打印出给定子串在目标字符串中出现的次数。字符串变量将从左到右进行,而不是从右至左。例如给定‘ABCDCDC’和‘CDC’,程序输出2;

#codeing: utf-8
str1 = input("请输入第一个字符串:")
str2 = input("请输入要查找的子串:")

num = 0
tstr1 = str1
while True:
    i = tstr1.find(str2)
    if i>=0:
        tstr1 = tstr1[i+1:]
        num+=1
    else:
        break
print(num)
请输入第一个字符串:ABCDCDC
请输入要查找的子串:CDC
2

6.给定任意一个整数,打印出该整数的十进制、八进制、十六进制(大写)、二进制形式的字符串;

#codeing: utf-8
num1 = int(input("请输入第一个整数:"))
print("该整数的十进制为:%d"%num1)
print("该整数的八进制为:%s"%oct(num1))
print("该整数的十六进制为:0x%X"%num1)
print("该整数的二进制为:%s"%bin(num1))
请输入第一个整数:1234
该整数的十进制为:1234
该整数的八进制为:0o2322
该整数的十六进制为:0x4D2
该整数的二进制为:0b10011010010

7.通过学习我们知道str是不可变的,本程序要实现一个功能:用户输入一个字符串,修改该字符串中哪个位置的字符,程序就会输出修改后的结果。比如用户输入:

'fkjava.org'
6 -

程序将会输出:'fkjava-org'.

#codeing: utf-8
str1 = input("请输入一个字符串:")
str2 = input("请输入替换字符的位置和需要替换的字符:")
ret = ''
index,cc = str2.split(" ")
lstr1 = list(str1)
for i in range(len(str1)):
    if i == int(index):
        ret+=cc
    else:
        ret+=lstr1[i]
print(ret);
请输入一个字符串:dfsdgdfgdfgsdfg
请输入替换字符的位置和需要替换的字符:1 h
dhsdgdfgdfgsdfg

 

你可能感兴趣的:(python)