【python練習】字符串

1.標識符檢測器

編寫一個檢查 Python 有效標識符的小腳本,名字是 idcheck.py。
要求:Python 標識符必須以字母或下劃線開頭
1). 只檢查長度大於等於 2 的標識符
2). 以字母或者下劃線開始
3). 後面要跟字母,下劃線或者或數字

相當於string的內建函數isidentifier()
在這裏插入圖片描述

拓展String模塊
string 模塊預定義的字符串:
string.ascii_letters 、string.ascii_lowercase
string.ascii_uppercase 、string.digits
string.whitespace 、string.punctuation

import string

while True:
    name = input('請輸入文件名:')
    if name == 'exit':
        print('正在退出程序...')
        exit(0)   #0表示正常退出程序
    if len(name) >= 2:
        if name[0] in string.ascii_letters or name[0] == '_':
            for i in name[1:]:
                if not (i in string.ascii_letters+string.digits or i == '_'):
                    print('Error:後面字符不對')
                    break
            else:
                print('命名正確!')

        else:
            print('Error:不是以字母或下劃線開頭')
    else:
        print('Error:長度小於2')

測試如下:
在這裏插入圖片描述

2.IPv4檢測器

編寫一個函數來驗證輸入的字符串是否是有效的 IPv4 ?
1). IPv4 地址由十進制數和點來表示,每個地址包含4個十進制數,其範圍爲 0 - 255, 用(".")分割。
比如,172.16.253.1;
2). IPv4 地址內的數不會以 0 開頭。比如,地址 172.16.254.01 是不合法的。

while True:
    addr = input('請輸入ip地址:')
    if addr == 'q':
        exit(0)
    items = addr.split('.')
    if len(items) != 4:
        print('Error:不是4個十進制數')
    else:
        for item in items:
            if len(item) > 1 and item.startswith('0'):
                print('Error:不能以0開頭')
                break
            if not (0<= int(item) <= 255):
                print('Error:沒有在0-255之間')
                break
        else:
            print('IPv4地址正確')

測試如下:
在這裏插入圖片描述

3.檢測大寫字母

給定一個單詞,你需要判斷單詞的大寫使用是否正確。

我們定義,在以下情況時,單詞的大寫用法是正確的:

全部字母都是大寫,比如"USA"。 單詞中所有字母都不是大寫,比如"leetcode"。 如果單詞不只含有一個字母,只有首字母大寫, 比如
“Google”。 否則,我們定義這個單詞沒有正確使用大寫字母。

示例 1:

輸入: “USA” 輸出: True 示例 2:

輸入: “FlaG” 輸出: False 注意: 輸入是由大寫和小寫拉丁字母組成的非空單詞。

while True:
	word = input('請輸入單詞:')
	if word == 'q':
		exit(0)
	if word.isupper() or word.islower() or word.istitle():
		print(True)
	else:
		print(False)

測試如下:
在這裏插入圖片描述

4.學生出勤記錄

給定一個字符串來代表一個學生的出勤紀錄,這個紀錄僅包含以下三個
字符:
‘A’ : Absent,缺勤
‘L’ : Late,遲到
‘P’ : Present,到場
如果一個學生的出勤紀錄中不超過一個’A’(缺勤)並且不超過兩個連續的’L’(遲到),
那麼這個學生會被獎賞。
你需要根據這個學生的出勤紀錄判斷他是否會被獎賞。
示例 1:
輸入: “PPALLP”
輸出: True
示例 2:
輸入: “PPALLL”
輸出: False

records = input(">>> ")
print(records.count('A') <= 1 and records.count('LLL') < 1)

測試如下:
在這裏插入圖片描述
在這裏插入圖片描述

5. 機器人能否返回原點

在二維平面上,有一個機器人從原點 (0, 0) 開始。給出它的移動順序,判斷這個機器人在完成移動後是否在 (0, 0) 處結束。
移動順序由字符串表示。字符 move[i] 表示其第 i 次移動。機器人的有效動作有 R(右),L(左),U(上)和 D(下)。如果機器人在完成所有動作後返回原點,則返回 true。否則,返回 false。
注意:機器人“面朝”的方向無關緊要。 “R” 將始終使機器人向右移動一次,“L” 將始終向左移動等。此外,假設每次移動機器人的移動幅度相同。
示例 1:
輸入: “UD”
輸出: true
解釋:機器人向上移動一次,然後向下移動一次。所有動作都具有相同的幅度,因此它最終回到它開始的原點。因此,我們返回 true。
示例 2:
輸入: “LL”
輸出: false
解釋:機器人向左移動兩次。它最終位於原點的左側,距原點有兩次 “移動” 的距離。我們返回 false,因爲它在移動結束時沒有返回原點。

moves = input(">> ")
print(moves.count('L') == moves.count('R') and moves.count('U') == moves.count('D'))

測試如下:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章