欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python小技巧練習(xí)分享

 更新時(shí)間:2022年05月16日 14:04:01   作者:夢(mèng)想橡皮擦  
這篇文章主要介紹了Python小技巧練習(xí)分享,文章基于python的相關(guān)內(nèi)容展開詳細(xì)的python小技巧內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1.反轉(zhuǎn)數(shù)字

問題場(chǎng)景: 把數(shù)字 789 轉(zhuǎn)換為 987。

典型的數(shù)字翻轉(zhuǎn)問題。

解決思路: 將數(shù)字的百位十位個(gè)位拆解出來,就解開了

編碼如下:

def reverse_number(number):
    baiwei = int(number/100)
    shiwei = int(number%100/10)
    gewei = int(number%10)
    return gewei*100+shiwei*10+baiwei
new_number = reverse_number(789)
print(new_number)

2.類的說明文檔

問題場(chǎng)景: 給新創(chuàng)建的類添加說明文檔

解決思路: 在類名下使用三引號(hào)即可添加說明文檔,使用 類名,__doc__ 可調(diào)用該文檔

編碼如下:

class My_Class(object):
    """你好"""
print(My_Class.__doc__)

3.設(shè)置 Python 文件的編碼

問題場(chǎng)景: Python 文件設(shè)置默認(rèn)編碼。

解決思路: Python 腳本文件默認(rèn)是使用 UTF-8 編碼格式進(jìn)行編碼的,一般無需指定編碼,但我們也可自行設(shè)置編碼,Python2 代碼文件一般都帶該行注釋。 設(shè)置方式是使用一行注釋,要求格式需滿足下述正則表達(dá)式。

編碼如下:

coding[=:]\s*([-\w.]+)

聲明位置在 Python 文件的第一行或者第二行,注意 :=沒有空格。

例如下述代碼:

# -*- coding:utf-8 -*-

也可以使用大寫:

# -*- coding:UTF-8 -*-

4.旋轉(zhuǎn)字符串

問題場(chǎng)景: 一個(gè)字符串,一個(gè)數(shù)字,完成如下操作

  • 字符串為 abcde,數(shù)字為 3,則輸出 cdeab;
  • 字符串為 abcde,數(shù)字為 1,則輸出 eabcd;
  • 字符串為 abcde,數(shù)字為 0,則輸出 abcde;
  • ……

解決思路: 一個(gè)字符串切片運(yùn)用的問題。

編碼如下:

def reverse_str(my_str,offset):
    # 如果數(shù)字為 0,順序默認(rèn)不變
    if offset ==0:
        return my_str
    left = my_str[:len(my_str)-offset]
    right = my_str[len(my_str)-offset:]
    return right + left

5.實(shí)現(xiàn)控制臺(tái)滾動(dòng)條

問題場(chǎng)景:在控制臺(tái)輸出滾動(dòng)條。

解決思路:使用字符串格式化進(jìn)行實(shí)現(xiàn),例如用 > 表示進(jìn)展,用 / 表示未完成的進(jìn)展,使用 ljust() 方法返回一個(gè)原字符串左對(duì)齊,并使用填充字符(默認(rèn)空格)填充至指定長度的新字符串。

編碼如下: 逐步實(shí)現(xiàn)

# 打印一行 >>>
progress_str = ">" * 100
print(progress_str)

填充一部分 >,再填充另一部分 /

# 打印一行 >>>
progress_str = ">"*20
# 填充50個(gè) -
progress_str = progress_str.ljust(100,'/')
print(progress_str)

實(shí)現(xiàn)循環(huán)操作:

import time
for i in range(0, 11):
    time.sleep(0.3)
    current = i/10
    # 進(jìn)度條
    progress_str = '{0:s}{1:.0%}'.format(
        (int(current*10)*'>').ljust(10, '/'), current)
    print(progress_str)

為了讓其在一行出現(xiàn),可以修改代碼為如下格式,注意最后一行代碼。

import time
for i in range(0, 11):
    time.sleep(0.3)
    current = i/10
    # 進(jìn)度條
    progress_str = '{0:s}{1:.0%}'.format(
        (int(current*10)*'>').ljust(10, '/'), current)
    print(f'\r{progress_str}',end='')

6.print 函數(shù)直接寫入文件

問題場(chǎng)景 :如果不希望將 print 函數(shù)輸出的內(nèi)容,打印到控制臺(tái),而是直接輸入到文件中,該如何操作?

解決思路 :print()函數(shù)有一個(gè)參數(shù)叫做 file,用它就行。

編碼如下:

file = open('runtime.log', 'a+', encoding='utf-8')
print('測(cè)試日志', file=file)

7.合并 2 個(gè)列表

問題場(chǎng)景 合并 2 個(gè)列表,并要求合并之后的列表有順序。 例如 my_list1 = [1,2,3] , my_list2 = [1,3,5] ,合并之后是 my_list = [1,1,2,3,3,5]

解決思路 先合并 2 個(gè)列表,然后判斷其各個(gè)元素大小,判斷的時(shí)候使用冒泡排序即可完成任務(wù)。 編碼如下

def merge(l1, l2):
    my_list = l1 + l2
    n = len(my_list)
    for i in range(n):
        for j in range(0, n - i - 1):
            if my_list[j] > my_list[j + 1]:
                my_list[j], my_list[j + 1] = my_list[j + 1], my_list[j]
    print(my_list)

if __name__ == '__main__':
    my_list1 = [4, 2, 6]
    my_list2 = [1, 3]
    merge(my_list1, my_list2)

到此這篇關(guān)于Python小技巧練習(xí)分享的文章就介紹到這了,更多相關(guān)Python練習(xí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論