Python快速编程入门课后编程题

第二章

1.输入直角三角形的两个直角边的长度a,b.求斜边c的长度.

import math
a = input("输入直角三角形的直角边1\n");
b = input("输入直角三角形的直角边2\n");
a = int(a);
b = int(b);
print("斜边c的长度:",int(math.sqrt((a*a)+(b*b))));
# 两边转换成了整数类型,输入小数或者负数会报错

2.编写一个程序,用于实现两个数的交换.

a = input("输入a\n");
b = input("输入b\n");
def exchange(a,b):
    c = a;
    a = b;
    b = c;
    print(a,b);
exchange(a,b);
# 实际上转换的是输入的两个字符串,没有转换成数,也没有限制成输入数

第三章

1.编写一个程序,使用for循环输出 0~10之间的整数.

for i in range(0,10):
    print(i);

2.编写一个程序,判断用户输入的数是正数还是负数.

a  = input("输入一个数")
if (int(a) < 0):
    print("输入的数是一个负数");
else:
    print("输入的数是一个正数");
# 只能判断整数

3.编写一个程序,输出九九乘法表.

i = 1;
while i < 10:
    j = 1;
    while j <= i:
       print("%d * %d = %-2d"%(i,j,i*j),end = ' ');
       j = j + 1;
    print("\n");
    i = i + 1;
# %-2d 是该位置默认占两个位置,靠左对齐;可以直接使用%d

第四章

1.接收输入的一行字符,统计出字符串中包含数字的个数.

str_line = input("输入字符串:\n")
i = 0
sum = 0
while i < 10:
    s = str_line.count(str(i));
    i = i + 1;
    sum = s + sum;

print(sum);
# 难点count(sub),参数必须是字符串,i是整数类型需要转换成字符串作为参数使用
# 统计的是数字出现的次数,如11会识别成两个数字1,当统计十位数以上的数字时,此方法不完善

2.请输入星期几的第一个字母,用来判断是星期几,如果第一个字母一样,则继续判断第2个字母,以此类推.

week_date = ("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")

s = input("输入第一个字母:\n");

week = [];
for i in range(len(week_date)):
    if (week_date[i][0] == s.upper()):

        week.append(week_date[i])
if (len(week) == 1):
    print(week_date[i])
if (len(week) == 0):
    print("输入格式不正确")
if (len(week) > 1):
    s1 = input("输入第二个字母:\n")
    for j in range(len(week)):
        if(week[j][1] == s1.lower()):
            print(week[j]);
        # else:
        #     print("输入格式不正确")
#思路是:先比对第一个输入的字母和每个星期的头字母,相同的加入一个数组里,当数组大于1的时候,继续比对第二个字母
#最后注释掉的逻辑有问题.如果首字母相同的单词有两个,会执行两次循环,错误的一次会输出输入不正确,如需避免,重复循环1的类型.
#次题目可以继续优化,思路是循环每一次的输入内容,按照顺序对比每个字母,此解答思路只考虑了两次就可以匹配到正确的单词,没有加入循环.

3.编写一个程序,计算字符串中出现的次数

str = "dfsahfjkdsahgoasjflmhgjoidsjkhjpsadfigujmsaoifuhdsjaghlafhjdsai "

print(str.count("dsa"));

第五章

1.编写一个函数,用于判断用户输入的字符串是否由小写字母和数字构成

import string

arr = list(input("输入字符串:\n"));

for i in arr:
    num = i.isdigit();
    little_str = i.islower();

    if(little_str or num):
        continue
    else:
        print(i+"不属于小写字母和数字");

2.请根据下述需求,编写一个程序.

用户输入一个字符串,将下标为偶数的字符提出来合并成一个新的字符串A,再将下标为奇数的字符提出来合并成一个新的字符串B,再将字符串A和B连接起来输出

s2 = list(input("输入字符串:\n"));

sA = [];
sB = [];
for i in range(len(s2)):
    if i == 0:
        sA.append(s2[i]);
    elif i%2 == 1:
        sB.append(s2[i]);
    elif i%2 == 0:
        sA.append(s2[i]);

print("".join(sA));
print("".join(sB));
print("".join(sA+sB));

3.请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写),统计出的结果,请按照[‘a’:3,‘b’:2]的格式输出

import string

s3 = input("输入字母组成的字符串:");
s3.lower();
s4 = {};
for i in string.ascii_lowercase:  #将输入的字符串全转换成小写.并且查找数量加入字典
    s4[i] = s3.count(i);
for j in list(s4.keys()):   #将字典中值为0的删除,当在遍历字典时,不能修改大小,将循环范围内的字典转换后既可修改
    if s4[j] == 0:
        del s4[j]
print(s4);

4.请根据下列需求,编写一个程序.

用户输入一个字符串,请将字符串中的所有字母全部向后移动一位,最后一个字母放到字符串的开头,最后将新的字符串输出.

你可能感兴趣的:(Python快速编程入门课后编程题)