#%%
# 运行当前cell用的是ctrl + 回车
def demo():
str = 'hello world'
print(str.capitalize()) #首字母大写
print(str.replace('world', 'nowcoder'))
s1 = '\n\r abc \n\r'
print(s1.lstrip())
print(s1.rstrip())
print(s1.strip())
print(1, str.startswith('hel'))
print(2, str.endswith('x'))
str2 = 'bcd'
print(3, str + str2)
print(4, len(str), len(str2), len(s1))
str3 = 'wo ai ni zhong guo'
print(5, '--'.join(['a', 'b', 'c', 'd', 'e', 'f'])) #java 中可能就要用到StringBuilder的append方法了
print(6, str3.split(' '))
print(7, str3.find('ai'))
print(type(str))
class A():
def plus(self,m,n):
return m + n
def div(self,c,d):
return c*d
def demo1():
print(1, max(2,1), min(5,2))
print(2, len('abcde'), len([1,2,3,4]))
print(3, abs(-4), abs(+7))
print(4, chr(65), ord('a'))
print(5, divmod(11,3))
#这个函数的功能就是可以执行字符串中的内容
x = 2
print(6, eval('x+3'))
b = A()
print(b.plus(1,3))
print(b.div(3,4))
print(eval('b.div(7,8)'))
print(7, dir(list))
print(8, '\n'.join(dir(list))) #join函数就是对list中的元素进行拼接,所以要传入一个list
def demo2():
score = 77
if score > 99:
print('youxiu')
elif score > 80:
print('lianghao')
else:
print('jige')
while score > 10:
print(score)
score -= 10
def demo3():
lista = [1,2,3,3,3,3,3,4]
listb = [5,6,7,8]
lista.extend(listb)
print(lista)
lista.append(9)
print(lista)
print(lista.count(3))
lista.pop(0)
lista.insert(0,10)
print(lista)
lista.reverse();
print(lista)
lista.sort()
print(lista)
listb = listb*2
print(listb)
def demo4():
dicta = {4: 16, 5:25, 6: 36,7:49}
print(dicta.keys(), dicta.values())
for k in dicta:
print(dicta[k])
for k, v in dicta.items():
print(k + v)
print(dicta.__contains__(4))
del dicta[4]
print(dicta)
dicta.pop(5)
print(dicta)
def demo5():
lista = [2,2,2,1,4,3,6,7,5]
seta = set(lista) #自动去重
print(seta)
setb = set([4,5,6,7,8,9,0])
print(seta &setb, seta | setb, seta - setb, setb - seta)
if 1 in seta:
seta.add(10)
print(seta)
demo5()
#%%
class User:
def __init__(self, name, uid):
self.name = name
self.uid = uid
def __repr__(self):
return 'I am ' + self.name + ' ' + str(self.uid)
#这个方法啊类似于java中的toString()方法
class Guest(User):
def __repr__(self):
return 'I am guest ' + self.name + ' ' + str(self.uid)
class Admin(User):
def __init__(self, name , uid , group):
# User.__init__(self,name,uid)
super(Admin,self).__init__(name, uid)
self.group = group
def __repr__(self):
return 'I am Admin'+' '+ self.name + ' '+ str(self.uid) +' '+ self.group
def demo_obj():
user1 = User('fuqiang', 1)
print(user1)
user2 = Guest('xiaoming', 2)
print(user2)
user3 = Admin('google', 3,'company')
print(user3)
demo_obj()
#%%
def demo_exception():
try:
print(2/1)
raise Exception('Raise Error', 'Nowcoder') # 只要是在这里raise出来的错误,都会被捕获到
except Exception as e:
print(e)
finally:
print('clean up')
demo_exception()
#%%
import random
def demo_random():
for i in range(5):
print(0, random.randint(0,100))
print(1, random.random())
print(2, int(random.random()*100))
#下面的场景可以用于抽奖,从1-100中随机抽出1个
print(3, random.choice(range(1,100,5)))
#从选中的人中抽出5个
print(4, random.sample(range(0,100,10),5))
lista = [1,4,5,8,9,7,0]
print(5, random.choice(lista))
print(6, random.sample(lista, 3))
lista.sort()
print(lista)
random.shuffle(lista)
print(lista)
demo_random()
#%%
import re
def demo_regex():
str = 'abc123de45fgjhkj787df890'
p1 = re.compile('[\d]+')
p2 = re.compile('[\d]')
print(1, p1.findall(str))
print(2, p2.findall(str))
str = '26684189562@qq.com, 2398423@qq.com, ksdhf234@163.com, kejdfh3984ei@google.com, fuqinsg@outlook.com'
p3 = re.compile('[\w]+@[qq|163]+\.com')
print(3, p3.findall(str))
str = '<html><h>title</h><body>content</body></html>'
p4 = re.compile('<h>.+</h>') #.表示匹配除了换行符\n之外的字符。+表示匹配前面的字符一次或多次,*表示匹配0次或多次
print(4, p4.findall(str))
str = 'smdf2016-07-09djfghd, wier2018-09-23fjd'
p5 = re.compile('[\d]{4}-[\d]{2}-[\d]{2}') #{表示前面的子表达式出现固定次数}
print(5, p5.findall(str))
demo_regex()