新聞中心
1.創(chuàng)建和賦值
字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。Python 里面最常見(jiàn)的
類型。 可以簡(jiǎn)單地通過(guò)在引號(hào)間(單引號(hào),雙引號(hào)和三引號(hào))包含字符的方式創(chuàng)建它。
第一種方式:
"""
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的杜集網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
str1 = "westos"
str1
'westos'
type(str1)
第二種方式:
str2 = 'westos'
str2
'westos'
type(str2)
第三種方式:
propt = """
... 學(xué)生管理系統(tǒng)
... 1). 錄入學(xué)生信息
... 2). 查找學(xué)生信息
... 0). 退出系統(tǒng)
... """
print(propt)
學(xué)生管理系統(tǒng)
1). 錄入學(xué)生信息
2). 查找學(xué)生信息
0). 退出系統(tǒng)
propt
'\n\t\t\t學(xué)生管理系統(tǒng)\n\t1). 錄入學(xué)生信息\n\t2). 查找學(xué)生信息\n\t0). 退出系統(tǒng)\n'
#字符串是不可變的數(shù)據(jù)類型, 我們看到的變化實(shí)質(zhì)上是字符串指向了新的內(nèi)存空間。原先內(nèi)存空間的值并不會(huì)變化。
s = 'hello'
id(s)
140109418005808
s = 'westos'
id(s)
140109418005872
"""
一個(gè)反斜線加一個(gè)單一字符可以表示一個(gè)特殊字符,通常是不可打印的字符
2.字符串的基本特性
連接操作符: 從原有字符串獲得一個(gè)新的字符串
重復(fù)操作符: 創(chuàng)建一個(gè)包含了原有字符串的多個(gè)拷貝的新串
""10 + "學(xué)生管理系統(tǒng)" + ""10
- 索引(s[i] ): 獲取特定偏移的元素
索引的分類: 正向索引, 反向索引
- 切片S[i:j]提取對(duì)應(yīng)的部分作為一個(gè)序列:
- 如果沒(méi)有給出切片的邊界,切片的下邊界默認(rèn)為0,上邊界為字符串的長(zhǎng)度;
擴(kuò)展的切片S[i:j:k],其中i,j含義同上,k為遞增步長(zhǎng); - s[:]獲取從偏移量為0到末尾之間的元素,是實(shí)現(xiàn)有效拷貝的一種方法;
- s[::-1]是實(shí)現(xiàn)字符串反轉(zhuǎn)的一種方法;
成員操作符用于判斷一個(gè)字符或者一個(gè)子串(中的字符)是否出現(xiàn)在另一個(gè)字符串中。
出現(xiàn)則返回 True,否則返回 False.
string 模塊預(yù)定義的字符串:
string.ascii_letters string.ascii_lowercase
string.ascii_uppercase string.digits
string.whitespace string.punctuation
編寫一個(gè)檢查 Python 有效標(biāo)識(shí)符的小腳本,名字是 idcheck.py。
要求:Python 標(biāo)識(shí)符必須以字母或下劃線開頭
1). 只檢查長(zhǎng)度大于等于 2 的標(biāo)識(shí)符
2). 以字母或者下劃線開始
3). 后面要跟字母,下劃線或者或數(shù)字
#導(dǎo)入string模塊
import string
while True:
#name = raw_input("請(qǐng)輸入標(biāo)識(shí)符: ")
name = input("請(qǐng)輸入標(biāo)識(shí)符: ")
if name == 'exit':
print("歡迎下次使用表示符檢測(cè)器....")
exit(0) # 退出程序, 0代表的是正常退出
# 1). 只檢查長(zhǎng)度大于等于 2 的標(biāo)識(shí)
if len(name) >= 2:
# pass # 占位符
# 2). 以字母或者下劃線開始
if name[0] == '_' or name[0] in string.ascii_letters:
# pass # 占位符
# 3). 后面要跟字母,下劃線或者或數(shù)字, hello@hhhh
for item in name[1:]:
if not (item == '_' or item in string.ascii_letters+string.digits):
print('Error: 后面沒(méi)有跟字母,下劃線或者數(shù)字')
break # 跳出循環(huán)
else: # 當(dāng)正常遍歷字符串結(jié)束,要執(zhí)行的內(nèi)容
print('OK: 正確的變量名')
else:
print('Error: 沒(méi)有以字母或者下劃線開始')
else:
print('Error: 長(zhǎng)度小于2')
#encoding=utf-8
"""
判斷回文串:
1. 只考慮字母或者數(shù)字字符: 刪除非字母或數(shù)字
2. 忽略字母的大小寫: 統(tǒng)一轉(zhuǎn)成大寫或者小寫
"""
#string = 'A man, a plan, a canal: Panama.'
string = raw_input(">>: ")
#string = input(">>: ")
#1. 只考慮字母或者數(shù)字字符: 刪除非字母或數(shù)字
string1 = ''
for item in string:
if item.isalnum():
string1 += item
#print("刪除非字母或數(shù)字:", string1)
#2. 忽略字母的大小寫: 統(tǒng)一轉(zhuǎn)成大寫或者小寫
string2 = string1.lower()
#print("統(tǒng)一轉(zhuǎn)成大寫或者小寫:"+string2)
#3. 判斷回文
print(string2 == string2[::-1])
3字符串內(nèi)建方法
編寫一個(gè)函數(shù)來(lái)驗(yàn)證輸入的字符串是否是有效的 IPv4 ?
1). IPv4 地址由十進(jìn)制數(shù)和點(diǎn)來(lái)表示,每個(gè)地址包含4個(gè)十進(jìn)制數(shù),其范圍為 0 - 255, 用(".")分割。
比如,172.16.253.1;
2). IPv4 地址內(nèi)的數(shù)不會(huì)以 0 開頭。比如,地址 172.16.254.01 是不合法的。
#ip = '172.25.254.100'
ip = input('IP: ')
#1). 判斷是否為IPv4?是否為4段?
items = ip.split('.') # ['172', '25', '254', '100']
if len(items) == 4:
# 2). IPv4 地址由十進(jìn)制數(shù), 其范圍為 0 - 255
for item in items: # item = '172', '25', '254', '100'
# IPv4 地址內(nèi)的數(shù)不會(huì)以 0 開頭。 (item.startswith('0') and len(item)!=1)
# '08' '0'
if not(0 <= int(item) <= 255) or (item.startswith('0') and len(item)!=1):
print('Error')
break
else:
print('OK')
else:
print('Error')
cmp() 根據(jù)字符串的 ASCII 碼值進(jìn)行比較(py3取消)
len() 返回字符串的字符數(shù)
max() and min() 返回最大或者最小的字符,(按照 ASCII 碼值排列)
enumerate() 枚舉對(duì)象同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo)
zip() 將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,
然后返回由這些元組組成的列表
string模塊
檢測(cè)大寫字母 detect-capital
word = input(">> ")
if word.isupper() or word.islower() or word.istitle():
print(True)
else:
print(False)
機(jī)器人能否返回原點(diǎn) robot-return-to-origin
"""
機(jī)器人能否返回原點(diǎn)
"""
moves = input(">> ")
print(moves.count('L') == moves.count('R') and moves.count('U') == moves.count('D'))
小學(xué)生計(jì)算能力測(cè)試系統(tǒng)
設(shè)計(jì)一個(gè)程序,用來(lái)實(shí)現(xiàn)幫助小學(xué)生進(jìn)行算術(shù)運(yùn)算練習(xí),它具有以下功能:提供基本算術(shù)運(yùn)算
(加減乘)的題目,每道題中的操作數(shù)是隨機(jī)產(chǎn)生的,練習(xí)者根據(jù)顯示的題目輸入自己的答案,程
序自動(dòng)判斷輸入的答案是否正確并顯示出相應(yīng)的信息。最后顯示正確率。
思路:
l 運(yùn)行程序, 輸入測(cè)試數(shù)字的大小范圍
l 輸入測(cè)試題目數(shù)量
l 任意鍵進(jìn)入測(cè)試
l 系統(tǒng)進(jìn)行測(cè)試并判斷對(duì)錯(cuò)
l 系統(tǒng)根據(jù)得分情況進(jìn)行總結(jié),退出程序
"""
import random
start = input("輸入測(cè)試數(shù)字的大小范圍(start, 默認(rèn)是1) >> ")
end = input("輸入測(cè)試數(shù)字的大小范圍(end, 默認(rèn)是10) >> ")
count = input("輸入測(cè)試題目數(shù)量(默認(rèn)為10) >>")
# 1). 給定start, end, count默認(rèn)值
start = 1 if not start else int(start)
end = 10 if not end else int(end)
count = 10 if not count else int(count)
input("任意鍵進(jìn)入測(cè)試........")
#print(start, end, count)
#4). 顯示正確率。
right_count = 0
#3). 循環(huán)count次, 出count道題目
print("小學(xué)生計(jì)算能力測(cè)試系統(tǒng)".center(50, '*'))
for item in range(count):
while True:
# 2). 每道題中的操作數(shù)是隨機(jī)產(chǎn)生的,練習(xí)者根據(jù)顯示的題目輸入自己的答案
num1 = random.randint(start, end)
num2 = random.randint(start, end)
operator = random.choice('+-*---///')
# print(num1, num2, operator)
right_result = eval("%s%s%s" % (num1, operator, num2))
if right_result >= 0 and type(right_result) == int and num1 != num2:
break
user_result = int(input('%s %s %s = ' %(num1,operator,num2)))
if user_result == right_result:
print("回答正確")
right_count += 1
else:
print("回答錯(cuò)誤")
print("正確率: %.2f %%" %((right_count / count)*100))
網(wǎng)站欄目:python學(xué)習(xí)之字符串
文章位置:http://fisionsoft.com.cn/article/ihcjjh.html