Python字符串,列表
字符串的創建:
單引號, 雙引號 ,三引號 <註意: 轉義字符的使用>
字符串的特殊性:
索引 切片 連接 重復 成員操作符(in, not in)
字符串的常用方法:
1). 判斷字符串的類型(isdigit, isspace, isupper,islower ......)
2). 字符串開頭結尾的判斷(endwith,startwith)
endwith -- 多用於查找指定的文件格式(.log, .png......)
startwith -- 所用於判斷使用的協議(http://, https://, ftp://)
3). 去除空格(left,middle,right)
lstrip #去除左邊空格
rstrip #去除右邊空格
strip #去除左右兩邊空格
4).居中 , 居左, 居右
center
ljust
rjust
5). 切片
split()
6). 連接
join()
內置函數:
cmp max min enumerate zip sum len abs
數值,字符串是不可變數據類型: 列表是可變數據類型
測試練習:
2017-好未來-筆試編程題
-
題目描述:
輸入兩個字符串,從第一字符串中刪除第二個字符串中所有的字符。例如,輸入”They are students.”和”aeiou”,則刪除之後的第一個字符串變成”Thy r stdnts.” -
輸入描述:
每個測試輸入包含2個字符串 -
輸出描述:
輸出刪除後的字符串 - 示例1:
輸入
They are students.
aeiou
輸出
Thy r stdnts.
#!/usr/bin/env python
#coding:utf-8
s1 = raw_input ("please input your first string:")
s2 = raw_input ("please input your second string:")
for i in s2:
s1=s1.replace(i,"")
else:
print s1
測試結果:
2017-小米-句子反轉
-
題目描述:
給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
-
輸入描述:
輸入數據有多組,每組占一行,包含一個句子(句子長度小於1000個字符)
-
輸出描述:
對於每個測試示例,要求輸出句子中單詞反轉後形成的句子
- 示例1:
- 輸入
hello xiao mi
- 輸出
mi xiao hello
#!/usr/bin/env python
#coding:utf-8
print " ".join(raw_input("please in put your first string:").split()[::-1])
測試結果:
![](http://i2.51cto.com/images/blog/201803/18/d07ff4e4a83878f51f96ccfb1c4ada48.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
華為測試:
題目描述:輸入一行字符串,分別統計出包含英文字母,空格,數字和其他字符的個數
#!/usr/bin/env python
#coding:utf-8
s = raw_input("請輸入字符:")
al_count, space_count, num_count, other_count = 0, 0, 0, 0
for i in s:
if i.isalpha():
al_count += 1
elif i.isspace():
space_count += 1
elif i.isdigit():
num_count += 1
else:
other_count += 1
print "英文字母個數:%d\n空格個數:%d\n數字個數:%d\n其他字符個數:%d" % (
al_count, space_count, num_count, other_count)
測試結果:
![](http://i2.51cto.com/images/blog/201803/18/a7fe6d2648487416412ad7562770f7d4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
枚舉,zip
#!/usr/bin/env python
#coding:utf-8
s = "hello"
for i in range(len(s)):
print i,s[i]
測試結果:
![](http://i2.51cto.com/images/blog/201803/18/6265339f9db37d71ce9d78bd435b4ce9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
enumerate內置函數枚舉;
![](http://i2.51cto.com/images/blog/201803/18/1ac49d6feccfad85077d3bf1a037189f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
zip內置函數;
![](http://i2.51cto.com/images/blog/201803/18/2b39e4c9cbaa96c517666afb227ec486.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
List 列表
列表特性:
#!/usr/bin/env python
#coding:utf-8
array = [1, 2, 3, 4, 5, 6, 7]
li = [1, 1.0, 1L, "hello", 1 + 3j]
#索引:正向索引和反向索引片
print li[::-1]
#重復
print li * 3
#連接
print array + li
#成員操作符
print 1 in li
print 1 not in li
結果輸出:
![](http://i2.51cto.com/images/blog/201803/18/ba67f09d4cf8ddb63e4637d06d1f1db0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
列表增刪查改
#!/usr/bin/env python
#coding:utf-8
allow_ip = [‘172.25.254.91‘, ‘172.25.254.2‘, ‘172.25.254.14‘, ‘172.25.254.32‘]
# 增
#append追加元素到列表的最後;
#allow_ip.append(‘172.25.254.6‘)
#print allow_ip
#insert將元素添加到指定索引的前面;
#allow_ip.insert(1,‘172.25.254.34‘)
#print allow_ip
#extend是追加多個元素到列表中;
#allow1_ip = [‘172.25.254.56‘, ‘172.25.254.66‘]
#allow_ip.extend(allow1_ip)
#print allow_ip
#改
#給列表的指定索引重新賦值;
#allow_ip[0] = ‘172.25.254.11‘
#print allow_ip
#查
#顯示指定元素出現的次數;
#print allow_ip.count(‘172.25.254.1‘)
#顯示指定元素的索引值;如果出現多個,顯示小的那個索引;如果元素不存在,報錯,ValueError;
#print allow_ip.index(‘172.25.254.1‘)
#刪
#pop是刪除指定索引的值;如果列表為空或者索引不在範圍內,則報錯; 如果不指定索引值,默認刪除最後一個元素;
#allow_ip.
#刪除列表中最先出現的值,不存在,則報錯;
#allow_ip.remove(‘172.25.254.1‘)
#print allow_ip
#反轉列表
#allow_ip.reverse()
#列表排序
allow_ip.sort()
print allow_ip
測試練習:
多用戶登陸系統:
1). 已知多個用戶名和密碼;
2). 判斷用戶名是否存在,
如果登陸的用戶不存在,則報錯, 清註冊用戶;
如果用戶存在, 則判斷密碼是否正確:
如果正確, 輸出用戶登陸成功;
如果不正確, 輸出登陸失敗;
#!/usr/bin/env python
#coding:utf-8
import getpass
users = [‘user1‘, ‘user2‘, ‘user3‘]
passwds = [‘123‘, ‘456‘, ‘123‘]
inuser = raw_input("用戶名:")
inpass = getpass.getpass("密碼:")
#if 用戶是否存在(成員操作符):
if inuser in users:
index = users.index(inuser)
passwd = passwds[index]
if passwd == inpass:
print "%s登陸成功....." %(inuser)
##1).找出用戶名的索引值
##2).取出對應用戶名的密碼
##3).判斷是否一致
#if 密碼正確:
#pass
else:
print "密碼不正確..."
else:
print "%s 不存在,清註冊....." %(inuser)
測試結果:
因為導入getpass。在測試時必須用終端進行。
![](http://i2.51cto.com/images/blog/201803/18/2783a8fae766bf49e8261718bfe51e25.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
測試練習:
批量生成學號:
學號前4位為1705
依次有三個學院:電子工程學院(01), 軟件學院(02), 商學院(03)
每個學院有200人;
#!/usr/bin/env python
#coding:utf-8
for i in [‘01‘, ‘02‘, ‘03‘]:
for j in range(1,201):
print "1705%s%.3d" %(i,j)
Python字符串,列表