python_4
s = input() d = {'upper':0, 'lower':0} for i in s: if i.isupper(): d['upper'] += 1 elif i.islower(): d['lower'] += 1 else: pass print('upper:', d['upper']) print('lower:', d['lower'])
计算给定句子的大小写字母个数
注意点:
1. isupper()和islower()函数的应用
------------------------------------------------------------------------------------------------------------------------
a = input() n1 = int('%s'%a) #n1 = int(a) n2 = int('%s%s'%(a,a)) #n2 = int(a+a) n3 = int('%s%s%s'%(a,a,a)) #n3 = int(a+a+a) n4 = int('%s%s%s%s'%(a,a,a,a)) #n4 = int(a+a+a+a) print(n1 + n2 + n3 + n4)
计算a + aa + aaa + aaaa
注意点:
1. 对于字符串来说,+ 为直接拼接
2. %s的应用
---------------------------------------------------------------------------------------------------------------------
accept = input() value = [x for x in accept.split(',') if int(x)%2] print(','.join(value))
找出一列数字中的奇数
注意点:
1. value = [x for x in accept.split(',') if int(x)%2] 对list赋值的使用
---------------------------------------------------------------------------------------------------------------------
account = 0 while True: s = input() if not s: break a = s.split(' ') a1 = a[0] a2 = int(a[1]) if(a1 == 'D'): account += a2 elif(a1 == 'W'): account -= a2 else: pass print(account)
存取款后银行账户资金变动
注意点:
1. 无限循环的设置技巧
-----------------------------------------------------------------------------------------------------------------
import re def pas_test(str): if len(str) < 6 or len(str) > 12: return False elif not re.search("[a-z]", str): return False elif not re.search("[0-9]", str): return False elif not re.search("[A-Z]", str): return False elif not re.search("[$#@]", str): return False else: return True accept = input() pas = [x for x in accept.split(',')] for i in pas: if pas_test(i): print(i)
密码有效性的判断
注意点:
1. 函数的使用使得代码的可读性提高
2. re模块的使用
3. re.search()函数的使用
------------------------------------------------------------------------------------------------------------------
from operator import itemgetter l = [] while True: ac = input() if not ac: break mes = [x for x in ac.split(',')] l.append(tuple(mes)) print(sorted(l, key = itemgetter(0,1,2)))
按照优先级进行排序
注意点:
1. sorted()函数是作用于list的
2. operator模块的itemgetter()函数是作用于元组的,因此将元组作为列表的一个元素
-----------------------------------------------------------------------------------------------------------------
def iternum(n): i = 0 while i<n: if not i%7: yield i i += 1 for i in iternum(100): print(i)
利用generator迭代0-n之间能被7整除的数
注意点:
1. 对于迭代的认识及其好处
2. for循环隐式调用了next()函数
-------------------------------------------------------------------------------------------------------------------
import math pos = [0,0] while True: ac = input() if not ac: break s = ac.split(' ') step = int(s[1]) if s[0] == 'UP': pos[1] += step if s[0] == 'DOWN': pos[1] -= step if s[0] == 'LEFT': pos[0] += step if s[0] == 'RIGHT': pos[0] -= step print(round(math.sqrt(pos[0]**2 + pos[1]**2)))
计算直线距离
注意点:
1. round()函数的使用
2. 平方不是^2, 而是**2