zoukankan      html  css  js  c++  java
  • Python 基础练手 32 道

    只是记录一把, 这两天, 在建表和定方案的时间极其不充裕下, 看到有铁子求助一下基础的编程题, 32 道题, 90% 都是非常基础的那种, 输入, 输出, 简单判断这些.. 对于新手而言, 练练手还是可以的, 基础语法都有涉及道, 有几道题还是有一点难度和趣味的.

    结论

    都搞定了, 不会写, 还不会抄的嘛, 抄代码才是提高自身实力的关键呀.

    累计, 大致算了下我零零散散抽空, 弄完这些基础题, 差不多也用了近 4 个小时, 之前还自我吹捧了一波, 说分分钟秒杀, 这打脸, 异常快, 快到比抛异常还快. 另外, 发现自己最近老爱吐槽, 风格就差, 即便天下人吐我, 我也要吐天下人那种.

    部分小题

    基础的输入输出啥的, 不弄题目了, 直接看看这些基础代码即可.

    # 3位整数逆序
    
    num = input("请输入一个三位整数:")
    
    print(num[::-1])
    

    我还发现, 好多面试题, 都喜欢考这种, 字符串反转... 这用 Python 就 太easy 和实用了.

    # if - else 练习
    
    sex = input('请输入您的性别(F 或 M): ')
    age = int(input("请输入您的年龄: "))
    
    if sex == "M":
        if age < 30:
            print('young')
        elif age <= 36:
            print('marriageable age')
        else:
            print('old')
    
    elif sex == 'F':
        if age < 25:
            print('young')
        elif age <= 30:
            print('marriageable age')
        else:
            print('old')
    
    else:
        print('wrong')
    
    
    # if-else 和 数学计算 练习
    
    my_str = input("What's the temperature? ")
    
    if my_str[-1] in ['F', 'f']:
        C = round((eval(my_str[0:-1]) - 32) / 1.8, 1)
    
        print(f"The converted temperature is {C}C.")
    
    
    elif my_str[-1] in ['C', 'c']:
        F = round(1.8 * eval(my_str[0:-1]) + 32, 1)
    
        print(f"The converted temperature is {F}F.")
    
    else:
        print("input error my dear.")
    
    
    # 循环: 文件读写
    
    with open("movie.txt") as f_in:
        with open("out.txt") as f_out:
            for line in f_in:
                # 假设每行数据, 分割符是 ','
                line_list = line.split(',')
                # 时长 Lasting 是最后一列
                if line_list[-1] < 90:
                    # 将该行序号写到 out.txt
                    f_out.write(str(line_list[0]))
    
    

    边读的同时, 一边写, 文件对象, 也是可迭代的, 这非常需要了解一下.

    # 循环练习: 亲密数
    
    x = int(input("请输入一个正整数: "))
    
    for a in range(2, x):
        b = 0
        for i in range(1, a):
            if a % i == 0:
                b += i
        r = 0
        for j in range(1, b):
            if b % j == 0:
                r += j
        if r == a and a < b:
            print(a, b)
    
    
    
    # 循环: 逻辑判断
    
    n = int(input('请输入最大兵力人数: '))
    
    for i in range(n + 1):
        if (i % 3 == 2) and (i % 5 == 1) and (i % 7 == 0):
            print(i, end=' ')
    
    # 列表推导式
    
    num = int(input("请输入一个 1-100 间的整数: "))
    
    print([i for i in range(1, num + 1) if i % 2 != 0])
    
    
    # 正则表达式
    # 匹配: 首字母为 '数字或下划线, 其余字母为 字母,数字,下划线'
    
    import re
    
    my_str = input("请输入您将要注册的用户名: ")
    
    ret = re.match(r"[a-z_]?[a-zds_]*", my_str)
    
    print(ret.group())
    print(True) if ret else print(False)
    
    
    # 字典按值排序
    
    import operator
    
    int(input("输入您要处理的整数个数: "))
    num_lst = list(map(int, input("请在一行输入, 两两间用 空格 隔开").split()))
    
    my_dict = {}
    for num in num_lst:
        if num not in my_dict:
            my_dict[num] = 1
        else:
            my_dict[num] += 1
    
    items = sorted(my_dict.items(), key=operator.itemgetter(1), reverse=True)
    for i, j in items:
        print(str(i) + ' ' + str(j))
    
    

    ...

    小结

    • 刷题是要经常的, 目的是要一直保持手感, 但不系统, 还是要仔细搭建起自己的知识体系
    • 编程我觉得就真的是唯手熟尔, 抄多了就自然会了, 并没有们技巧和捷径, 都是要采坑过去的
    • 结合我最近做的BI项目, 我更加坚信, 前端比后端复杂, sql 比 编程复杂
  • 相关阅读:
    2019-1-17水晶报表函数大全
    2019-1-17【水晶报表内功心法】--推拉之间
    2019-1-17水晶报表技巧总结【二】
    2019-1-16 水晶报表自动补空行
    2019-1-16水晶报表技巧总结【一】
    博客园添加访客人数
    2019-1-11存储过程的查看
    2019-1-11数据库重构
    lcx端口转发 linux版
    PentesterLab-From SQL Injection to Shell: PostgreSQL edition
  • 原文地址:https://www.cnblogs.com/chenjieyouge/p/12990349.html
Copyright © 2011-2022 走看看