字符串 将用户输入字符串中的大写成员转小写,小写成员转大写
ord() chr()
s = input('str:') new_str = '' for i in s: if 'a' <= i <= 'z': # new_str += chr(ord(i) - (ord('a')-ord('A'))) new_str += i.upper() elif 'A' <= i <= 'Z': # new_str += chr(ord(i) + (ord('a')-ord('A'))) new_str += i.lower() else: new_str += i print(new_str)
可变的序列类型:
- 列表list
# 定义
l = [] l = [1,2,3,'hello', [11,22]] ls = list('hello') ls2 = list(range(100)) print(ls) print(ls2) # 索引 print(l[0]) print(l[4]) print(l[4][0]) # 切片 print(l[:4]) print(l[1:]) print(l[1::2]) # 增 l[1:1] = [100] print(l) l.append(110) print(l) l.insert(2, 119) print(l) # 删 l[1:3] = [] print(l) l.pop(3) print(l) l.remove([11,22]) print(l) # 修改 l[0] = 120 l[1:3]
有序的不可变的序列类型:
- 元组tuple
# 定义
t = () print(type(t)) t1 = (1,) print(type(t1)) t2 = tuple([1,2,3,4, 'hello']) print(t2) # 索引 切片 print(t2[0]) print(t2[::-1]) print(t2) # 成员运算符 for t in t2: print(t) print('*****************************') t3 = (5,6,2,12,7,8,7,1,100) print(max(t3)) print(min(t3)) print(len(t3)) print(t3.index(7)) print(t3.count(7))
练习题 (字符串补充)
import random words = ('hello', 'python', 'boys', 'apple', 'world', 'eat') # 'apple' word = random.choice(words) # 'palep' save = word ''' rand_str = '' while word: # 不是空串 rand_ind = random.randrange(len(word)) # random.choice(range(len(word))) rand_str += word[rand_ind] word = word[:rand_ind]+word[rand_ind+1:] # 切除抽取的成员 ''' listword = list(word) random.shuffle(listword) rand_str = ''.join(listword) print('请猜测%s是什么单词, 你有三次机会:' % rand_str) for i in range(3): input_str = input('第%d次:' % (i+1)) if input_str == save: print('恭喜你!答对了') break else: if i < 2: print('很遗憾!再试一次') else: print('游戏结束!已经没有机会了')
Δ 1
''' 1990.1.1 星期1 2018.11.1 ''' year, month = eval(input('请输入年份和月份(year,month):')) sumdays = 0 # 1990~year for y in range(1990, year): sumdays += (365+(1 if (y % 4 == 0 and y % 100 != 0 or y % 400 == 0) else 0)) # year.1.1 ~ year.month.1 for m in range(1, month): if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12: sumdays += 31 elif m == 4 or m == 6 or m == 9 or m == 11: sumdays += 30 else: if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: sumdays += 29 else: sumdays += 28 sumdays += 1 weekday = sumdays % 7 # 计算month月有多少天 if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12: monthdays = 31 elif month == 4 or month == 6 or month == 9 or month == 11: monthdays = 30 else: if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: monthdays = 29 else: monthdays = 28 # 打印日历 m = '一二三四五六七八九十' if month == 11: monthstr = '十一' elif month == 12: monthstr = '十二' else: monthstr = m[month-1] print('33[34m{:>7}月 {}'.format(monthstr, year)) print('33[0m', end='') # 关闭属性 print('33[47m日 一 二 三 四 五 六') print('33[0m', end='') # 关闭属性 print(' '*weekday, end='') for d in range(1, monthdays+1): print('{:>2}'.format(d), end=' ' if (weekday+d)%7 else ' ') print()
Δ 2
''' 1990.1.1 星期1 2018.11.1 ''' days31 = [1,3,5,7,8,10,12] days30 = [4,6,9,11] year, month = eval(input('请输入年份和月份(year,month):')) sumdays = 0 # 1990~year for y in range(1990, year): sumdays += (365+(1 if (y % 4 == 0 and y % 100 != 0 or y % 400 == 0) else 0)) # year.1.1 ~ year.month.1 for m in range(1, month): if m in days31: sumdays += 31 elif m in days30: sumdays += 30 else: sumdays += (29 if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 else 28) sumdays += 1 weekday = sumdays % 7 # 计算month月有多少天 if month in days31: monthdays = 31 elif month in days30: monthdays = 30 else: if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: monthdays = 29 else: monthdays = 28 # 打印日历 m = '一二三四五六七八九十' if month == 11: monthstr = '十一' elif month == 12: monthstr = '十二' else: monthstr = m[month-1] print('33[34m{:>7}月 {}'.format(monthstr, year)) print('33[0m', end='') # 关闭属性 print('33[47m日 一 二 三 四 五 六') print('33[0m', end='') # 关闭属性 print(' '*weekday, end='') for d in range(1, monthdays+1): print('{:>2}'.format(d), end=' ' if (weekday+d)%7 else ' ') print()