zoukankan      html  css  js  c++  java
  • 07_Python语法示例(基础语法,文件操作,异常处理)

    1.写程序在终端输出图形

    ########
    #      #
    #      #
    ########
    print("#" * 8)
    print("#" + " " * 6 + "#")
    print("#" + " " * 6 + "#")
    print("#" * 8)

    2.已知矩形的长边为6cm,短边为4cm,求矩形的周长和面向并打印在终端上

    width = 6
    hight = 4
    perimeter = (width + hight) * 2
    area = width * hight
    print("矩形的周长是%s, 面积是%s" % (perimeter, area))

    3.已知连个变量a=1000,b=2000,让a和b交换绑定的对象

    方法一:
        a = 1000
        b = 2000
        c = a
        a = b
        b = c
        print(a, b)
    方法二:
        a = 1000
        b = 2000
        a = a + b
        b = a - b
        a = a - b
        print(a, b)
    方法三:
        a = 1000
        b = 2000
        a, b = b, a  # 序列赋值(解构/解包),python独有的方法
        print(a, b)

    4.打印出以下小星星

    '''规律: 1 3 5 7 每一行小星星个数=x*2-1
           *
          ***
         *****
        *******
    '''
    方法一:
        x = 1
        while x <= 4:
            res = "*" * (x * 2 - 1)
            print(res.center(7))  # center字符居中,两边自动填充字符
            x += 1
    方法二:
        for x in range(1, 5):
            res = "*" * (x * 2 - 1)
            print(res.center(7))

    5.中国古代的秤是16两一斤,那么216两是几斤几两,写程序打印出结果

    i = 216 // 16
    j = 216 % 16
    print("古代的216两是%d斤%d两" % (i, j))

    6.从凌晨0:0:0计时,到现在已经过去了63320秒,现在是几时几分几秒,写程序打印出来

    t = 63320 // 3600
    m = 63320 % 3600 // 60
    s = 63320 % 3600 % 60
    print("%d:%d:%d" % (t, m, s))

    7.将数字3.14用变量pi绑定,转换为整数用变量i绑定,将pi与i相减的结果用变量f绑定

    pi = 3.14
    i = int(pi)
    f = pi - i
    print(f == 0.14)  # False
    del pi, i, f  # 删除变量
    help("__main__")  # 查看当前作用域内变量

    8.假设一年只有365天,输入年数,打印这年有多少周,分三次输入时分秒,打印距离0:0:0过了多少秒

    year = input("请输入年份:")
    print("%s有%s周" % (year, 365 // 7))
    time_t = int(input(""))
    time_m = int(input(""))
    time_s = int(input(""))
    print("距离0:0:0过了%s秒" % (time_t * 3600 + time_m * 60 + time_s))

    9.输入一个正整数,判断这个数是奇数还是偶数并打印结果

    i = int(input("请输入一个正整数:"))
    if i%2 == 0:
        print("%s是偶数" % i)
    else:
        print("%s是奇数" % i)

    10.输入一个季度1-4,输出这个季度有那几个月,输入不是1-4的整数则提示输入有误

    quarter = int(input("季度(1~4): ") or "0")
    if quarter == 1:
        print("1月, 2月, 3月")
    elif quarter == 2:
        print("4月, 5月, 6月")
    elif quarter == 3:
        print("7月, 8月, 9月")
    elif quarter == 4:
        print("10月, 11月, 12月")
    else:
        print("输入有误!")

    11.输入一年中的月份1-12,输出这个月在那个季度,如果输入的是其他数则提示输入有误

    mouth = int(input("请输入月份(1~12): ") or "0")
    if mouth in [1, 2, 3]:
        print("%s月是春季" % mouth)
    elif mouth in [4, 5, 6]:
        print("%s月是夏季" % mouth)
    elif mouth in [7, 8, 9]:
        print("%s月是秋季" % mouth)
    elif mouth in [10, 11, 12]:
        print("%s月是冬季" % mouth)
    else:
        print("输入有误!")

    12.输入一个数用if语句计算打印这个数的绝对值,再用条件表达式实现计算并打印绝对值

    i = int(input("输入一个数字: "))
    if i >= 0:
        print(i)
    else:
        print(-i)
    print(i if i >= 0 else -i)

    13.出租车计价器程序,3公里以内收费13元,超过3公里每公里2.3元,超过15公里每公里1.15元,输入公里数打印出费用金额,保留2位小数

    kilometer = int(input("请输入公里数: "))
    if kilometer <= 3:
        money = 13
    elif 3 < kilometer <= 15:
        money += (kilometer - 3) * 2.3
    elif kilometer > 15:
        money += (kilometer - 15) * 1.15
    else:
        print("输入有误!")
    print("费用为%.2f" % money)

    14.输入一个学生的三科成绩打印出最高分和最低分

    a = int(input("请输入成绩a: "))
    b = int(input("请输入成绩b: "))
    c = int(input("请输入成绩c: "))
    if a > b:
        a, b = b, a
    if b > c:
        b, c = c, b
    if a > b:
        a, b = b, a
    print("最高分为%s, 最低分为%s" % (c, a))

    15.每4年一润年,每百年不润,四百年又润,输入一个年分判断是否为润年

    方法一:
        year = int(input("请输入年份: "))
        if year % 4 == 0 and year % 100 != 0:
            print("%s年是闰年" % year)
        elif year % 400 == 0:
            print("%s年是闰年" % year)
        else:
            print("%s年不是闰年" % year)
    方法二:
        year = int(input("请输入年份: "))
        # if条件表达式实现: 成立执行 if 真值表达式 else 不成立执行
        print("闰年" if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0) else "不是闰年")

    16.BMI身体质量指数程序设计

    '''
        BIM = 体重(公斤)/身高的平方(米)
        体重过轻: BIM < 18.5
        正常范围: 18.5 <= BIM <= 24
        体重过重: BIM > 24
    '''
    height = int(input("身高: ")) / 100
    weight = int(input("体重: "))
    bim = weight / (height ** 2)
    # if条件表达式嵌套实现: 成立执行 if 真值表达式 else '成立执行 if 真值表达式 else 不成立执行'
    print("体重过轻" if bim < 18.5 else "体重过重" if bim > 24 else "正常范围")

    17.写一个程序打印一个高度为4行的矩形方框,输入一个整数数字代表矩形宽度

    '''
        输入10时打印如下,输入5时打印如下
        ##########      #####
        #        #      #   #
        #        #      #   #
        ##########      #####
    '''
    方法一:
        width = int(input("请输入矩形宽度: "))
        for i in range(1, 5):
            display = '#' * width if i == 1 or i == 4 else '#' + ' ' * (width - 2) + '#'
            print(display)
    方法二:
        width = int(input("请输入矩形宽度: "))
        t = '%' + str(width - 1) + 's'
        for i in range(1, 5):
            # 替换原理: print("#%4s" % "*")
            display = '#' * width if i == 1 or i == 4 else '#' + t % '#'
            print(display)

    18.输入一个字符串,打印这个字符串的第一个和最后一个字符,字符串长度为偶数打印'|',奇数则打印中间字符

    s1 = input("请输入一个字符串: ")
    print("第一个字符是%s,最后一个字符是%s" % (s1[0], s1[-1]))
    print("|" if len(s1) % 2 == 0 else s1[len(s1) // 2])

    19.输入任意一个字符串,判断这个字符串是否是回文,回文示例:上海自来水来自海上,山东落花生花落东山

    s1 = input("请输入一个字符串: ")
    print("是回文" if s1 == s1[::-1] else "不是回文")

    20.输入一段字符串,如果是字符串则打印第一个字符的Unicode值,如果是整数0~65535范围则打印这个值是对应的字符

    s1 = input("请输入字符串或正整数: ")
    print(ord(s1[0]) if s1.isalpha() is True else chr(int(s1)))

    21.输入下列三行文字让这三行文字再下面方框内居中显示

    '''
        请输入第一行: hello world!
        请输入第二行: my name is Coco.
        请输入第三行: today is Sunday!
        显示如下:
        +----------------------+
        |     hello world!     |
        |   my name is Coco.   |
        |   today is Sunday!   |
        +----------------------+
    '''
    line = 3
    temp_list = list(input("请输入字符串%d: " % (i + 1)) for i in range(line))
    for i in range(temp_list.count('')):
        # 循环查找列表中的空字符串后删除空字符串
        temp_list.remove('')
    # max()函数可以输入多个参数,最终返回最大的一个
    length = max(len(i) for i in temp_list)
    for i in range(len(temp_list) + 2):
        print('+' + '-' * length + '+') if i == 0 or i == len(temp_list) + 1 else 
            print('|' + temp_list[i - 1].center(length) + '|')

    22.输入一个字符串判断有几分字符e,有几个空格,是否以?结尾

    s1 = input("请输入字符串: ")
    print("%s个字符e" % s1.count('e'))
    print("%s个空格" % s1.count(' '))
    print("字符串以?结尾: %s" % s1.endswith('?'))

    23.依次输入下列三行文字,让三行文字按最长个字符的宽度右对齐输出

    '''
        请输入第1行: hello world!
        请输入第2行: my name is Coco.
        请输入第3行: today is Sunday!
        打印结果如下
            hello world!
        my name is Coco.
        today is Sunday!
    '''
    line = 3
    temp_list = list(input("请输入第%d行: " % (i + 1)) for i in range(line))
    for i in range(temp_list.count('')):
        temp_list.remove('')
    length = max(len(i) for i in temp_list)
    temp_str = "%" + str(length) + "s"
    for i in range(len(temp_list)):
        print(temp_str % temp_list[i])

    24.写程序输入一个整数n,打印n以内不含n的全部不大于0的偶数

    方法一:
        i = 1
        j = int(input("请输入一个整数: "))
        while i < j:
            if i % 2 == 0:
                print(i)
            i += 1
    方法二:
        for i in range(2, int(input("请输入一个整数: "))):
            if i % 2 == 0:
                print(i)

    25.打印1~20的整数,要求打印在一行显示且数字与数字之间用一个空格分隔

    for i in range(1, 21):
        print(i, end=' ')

    26.打印1~20点整数,每行5个数,打印四行

    for i in range(1, 21):
        if i in [6, 11, 16]:
            print()
        print("%d	" % i, end=" ")

    27.打印从零开始的浮点数,每个数增加0.5,打印出10以内所有的这样数

    i = 0.5
    while  i < 10:
        print(i, end=' ')
        i += 0.5

    28.使用while语句打印10~1之间的整数

    i = 10
    while i > 0:
        print(i, end=' ')
        i -= 1

    29.用while语句实现打印三角形,输入一个整数表示三角形的宽度和高度

    '''请输入三角形宽度: 4
        *
        **
        ***
        ****
    '''
    width = int(input("请输入三角形宽度: "))
    i = 1
    while i <= 
        j = 1
        while j <= i:
            print("*", end='')
            j += 1
        print()
        i += 1

    30.输入一个数,打印指定宽度的正方形

    '''请输入正方形宽度: 5
        1 2 3 4 5
        1 2 3 4 5
        1 2 3 4 5
        1 2 3 4 5
        1 2 3 4 5
    '''
    width = int(input("请输入正方形宽度: "))
    for i in range(width):
        for j in range(1, width + 1):
            print(j, end=' ')
        print()

    31.用while语句实现打印三角形,输入一个整数表示三角形的宽度和高度

    '''
        *           *   ****    ****
        **         **   ***      ***
        ***       ***   **        **
        ****     ****   *          *
    '''
    width = int(input("请输入三角形的宽度: "))
    i = 1
    while i <= 
        print("*" * i)
        i += 1
    
    width = int(input("请输入三角形的宽度: "))
    i = 1
    while i <= 
        print(" " * (width - i) + "*" * i)
        i += 1
    
    width = int(input("请输入三角形的宽度: "))
    i = width
    while i >= 0:
        print("*" * i)
        i -= 1
    
    width = int(input("请输入三角形的宽度: "))
    i = width
    while i >= 0:
        print(" " * (width - i) + "*" * i)
        i -= 1

    32.输入一个开始值8,输入一个结束值30,按每5个整数打印一行

    begin = int(input("请输入开始值: "))
    end = int(input("请输入结束值: "))
    count = 0
    while begin < end:
        print("%s	" % begin, end=' ')
        count += 1
        if count % 5 == 0:
            print()
        begin += 1

    33.用while循环生成字符串'AaBbCcDdEe...XxYyZz'并打印

    i = ord('A')
    while i <= ord('Z'):
        print(chr(i) + chr(i + 32), end= '')
        i += 1

    34.分别用while和for实现打印输入的字符串中有多少个空格

    s = input("请输入字符串: ")
    count = 0
    i = 0
    while i < len(s):
        if s[i] == ' ':
            count += 1
        i += 1
    else:
        print(count)
    
    s = input("请输入字符串: ")
    count = 0
    for i in s:
        if i == ' ':
            count += 1
    print(count)

    35.输入一个n,范围在10以内代表矩形的宽度,用for循环实现如下打印结果

    '''请输入一个10以内的整数: 5
        1 2 3 4 5
        2 3 4 5 6
        3 4 5 6 7
        4 5 6 7 8
        5 6 7 8 9
    '''
    num = int(input('请输入一个10以内的整数: '))
    for i in range(1, num + 1):
        for j in range(i, num + i):
            print(j, end=' ')
        print()

    36.写一个程序求1~100之间所有不能被5,7,11整除的数的和

    count = 0
    for i in range(1, 101):
        for j in [5, 7, 11]:
            if i % j == 0:
                break
        else:
            count += i
    print(count)

    37.输入一个Unicode开始值和结束值,生成其间的字符串并打印

    begin = int(input("begin: "))
    end = int(input("end: "))
    temp_list = list(chr(i) for i in range(begin, end + 1))
    for i in temp_list:
        print(i, end=" ")

    38.输入一个整数代表树干的高度,输入3时打印如下

    '''
        *
       ***
      *****
        *
        *
        *
    '''
    height = int(input("请输入树干的高度: "))
    for i in range(1, height + 1):
        print("%s" % ("*" * (i * 2 - 1)).center(2 * height - 1))
    for i in range(height):
        print("*".center(2 * height - 1))

    39.输入一个正整数,打印从0到这个数的素数(prime),素数也叫质数,是只能被1和自身整数的整数

    num = int(input("正整数: ") or "0")
    if num >= 2:
        print(2, end= ' ')
    for i in range(2, num + 1):
        for j in range(2, i):
            if i % j == 0:
                break
            else:
                if i - j == 1:
                    print(i, end= ' ')

    40.写一个程序,让用户输入很多个正整数,当输入小于零的数时结束输入

    '''
        1)输出这些数的和
        2)输出这些数的最大的数和第二大的数
        3)删除最小的一个数
        4)按原来输入的顺序打印出乘余的这些数
    '''
    temp_list = list()
    while True:
        num = int(input("小于0退出: ") or "-1")
        if num < 0:
            break
        else:
            temp_list.append(num)
    print("求和: %d最大数: %d" % (sum(temp_list), max(temp_list)))
    temp_list.remove(max(temp_list))
    print("第二大数: %d" % max(temp_list))
    temp_list.remove(min(temp_list))
    for i in temp_list:
        print(i)

    41.求100以内有哪儿些整数与自身+1的乘积再对11求余的结果等于8

    temp_list = [x for x in range(100) if (x + 1) * x % 11 == 8]
    print(temp_list)

    42.计算20个斐波那契数(fabonacci数)存于列表中并打印,斐波那契数: 从第三个数起后一个数是前两个数之和

    temp_list = [1, 1]
    a = 1
    b = 1
    for i in range(18):
        a, b = b, a + b
        temp_list.append(b)
    print(temp_list, sum(temp_list))

    43.算出100~999以内的水仙花数,水仙花数是指百位的3次方加上十位的3次方加上个位的3次方等于原数的数字

    nums = ([x for x in range(100, 1000)
        if int(str(x)[0])**3 + int(str(x)[1])**3 + int(str(x)[2])**3 == x])
    print(nums)

    44.任意输入一些大于零数,存于列表中L,当输入-1时结束输入

    '''
        L = [1, 3, 5, 3, 7, 9, 3, 7, 6, 5]
        1)打印出这些数
        2)打印这些数的和
        3)去掉列表L中重复第二次或之后出现的数再次存到另一个列表L2中,L2 = [1, 3, 5, 7, 9, 6]
        4)打印L2列表中的数据的和
        5)将L列表中出现两次的数存到另一个列表L3中L3 = [5, 7]
    '''
    L = list()
    while True:
        num = int(input("请输入大于0的整数: ") or "0")
        if num == 0:
            continue
        if num == -1:
            break
        L.append(num)
    for i in L:
        print(i, end= ' ')
    
    count = 0
    for i in L:
        count += i
    print("求和: ", count, sep= ':')
    
    L2 = list()
    for i in L:
        if i not in L2:
            L2.append(i)
    for i in L2:
        print(i, end= ' ')
    print("L2求和: %s" % sum(L2))
    
    L3 = list()
    for i in L:
        if L.count(i) == 2 and i not in L3:
            L3.append(i)
    print(L3)

    45.任意输入字符串,打印这个字符串是否代表星期几,如果不是以上字符则打印"字典内没有相应的数据"

    data = {
        '0': '星期天',
        '1': '星期一',
        '2': '星期二',
        '3':  '星期三',
        '4': '星期四',
        '5': '星期五',
        '6': '星期六'
    }
    while True:
        num = input("请输入0-6查询: ") or "-1"
        if num in data:
            print(data[num])
        else:
            print("字典内没有相应的数据")

    46.有列表L=['coco', 'angels', 'cat', 'mouse']用推导式生成字典,字典的值为键的长度

    L = ['coco', 'angels', 'cat', 'mouse']
    dic = {x:len(x) for x in L}
    print(dic)

    47.有列表L1 = [1001, 1002, 1003, 1004],L2 = ['Coco', 'Angels', 'Cat', 'Mouse'],用L1做键L2做值生成字典

    L1 = [1001, 1002, 1003, 1004]
    L2 = ['Coco', 'Angels', 'Cat', 'Mouse']
    dic = {L1[x]:L2[x] for x in range(4)}
    print(dic)

    48.输入一段字符串,打印所有输入过的字符串,但重复的只打印一次

    se = {x for x in input("请输入字符串: ")}
    print(se)

    49.输入一段字符串,打印出这个字符串中出现过的字符及出现过的次数,字典存储

    s = input("请输入字符串: ") or "-1"
    dic = dict()
    for i in s:
        dic[i] = s.count(i)
    print(dic)

    50.一只小猴子摘了很多桃,第一天吃了全部桃子的一半又多吃了一个,到第十天只剩下一个请问第一天多少个桃

    # 规律1 4 10 (n+1)*2
    num = 1
    for i in range(9):
        num = (num + 1) * 2
    print(num)

    51.求4~5个完全数,并打印,1+2+3=6(6为完全数),1,2,3都为6的因数(能被一个数x整除的数为y,则y为x的因数)

    num = 0
    for i in range(1, 10000):
        for j in range(1, i):
            if i % j == 0:
                num += j
        if num == i:
            print(i, end=' ')
        num = 0

    52.任意输入一个数n代表三角形的高度,如输入4打印一下菱形

    '''
           1
          121
         12321
        1234321
         12321
          121
           1
    '''
    height = int(input("请输入高度: ") or '输入有误')
    temp_str = str()
    # 打印菱形上部分(行数字符数增长部分)
    for i in range(1, height + 1):
        for j in range(1, i):
            temp_str += str(j)
        for x in range(i, 0, -1):
            temp_str += str(x)
        print(temp_str.center(height * 2 - 1))
        temp_str = ''
    # 打印菱形下部分(行数字符数减少部分)
    for i in range(height - 1, 0, -1):
        for j in range(1, i):
            temp_str += str(j)
        for x in range(i, 0, -1):
            temp_str += str(x)
        print(temp_str.center(height * 2 -1))
        temp_str = ''

    53.用for和while分别实现打印九九乘法表

    for i in range(1, 10):
        for j in range(1, i + 1):
            print("%d*%d=%d" % (i, j, i*j), end= '	')
        print()
    i = 1
    while i <= 9:
        j = 1
        while j <= i:
            print("%d*%d=%d" % (i, j, i*j), end= '	')
            j += 1
        print()
        i += 1

    54.有文件t1.txt里面的内容如下

    '''t1.txt
        1,coco,22,13550505050,IT
        2,Rubicon,23,13304320533,Tearcher
        3,master,18,1333235322,IT
        利用文件操作,将其构造成如下数据类型
        [{'id': '1','name': 'coco','age': '22','phone': '13550505050', 'job': 'IT'},......]
    '''
    result = []
    with open("t1.txt", encoding="UTF-8") as f:
        # 读取每一行数据
        for line in f:
            dic = {}
            lst = line.split(",")
            dic["id"] = lst[0].strip()
            dic['name'] = lst[1].strip()
            dic['age'] = lst[2].strip()
            dic['phone'] = lst[3].strip()
            dic['job'] = lst[4].strip()
            result.append(dic)
    print(result)
  • 相关阅读:
    SSH中使用延迟加载报错Exception occurred during processing request: could not initialize proxy
    SSH整合方案二(不带hibernate.cfg.xml)
    SSH整合方案一(带有hibernate.cfg.xml)
    hibernate4整合spring3出现java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;
    jquery实现图片上传前的预览
    EL11个内置对象
    linux修改主机名,关闭图形化界面,绑定ip地址,修改ip地址
    VMTurbo:应对散乱虚拟机的强劲工具
    虚拟架构与云系统监控与管理解决方案
    VMTurbo采用红帽企业虚拟化软件
  • 原文地址:https://www.cnblogs.com/tangxuecheng/p/11216308.html
Copyright © 2011-2022 走看看