函数的参数
默认参数
def Joker(name='jack'):
print('%s 你真好'%name)
Joker()
带参数的传参
def Joker(name2,name='jack'):
print('%s 你真好'%name)
print(name)
Joker(name='jack',name2='haha')
不定长参数
def Joker(*args):
print(args)
Joker(1,2,3,4,5,6,7,8,,9,10)
def Joker(*args,**kwargs):
print(args)
print(kwargs)
Joker(1,2,3,name=1,b=2,c=3)
当你要在其他py文件中引用本文件中的任何东西,如果你不想在其他文件中运行该文件中的某些代码,你就可以使用"`if name == “main”:"
from day01 import *
A()
B()
C()
def A():
print('hahaha')
def B():
print('lalala')
def C():
print('heiheihei')
a = 1000
if __name__ == "__main__":
A()
把百度新闻中所有带http://的网址列出来
import requests
response = requests.get('http://news.baidu.com/')
response.encoding = 'utf8'
HTML = response.text #HTML str
for line in HTML.split('\n'):
if '<a' in line and 'http' in line:
splits = line.split('"')
for s in splits:
if 'http' in s and "background-image" not in s:
print(s)
字符串和常用数据结构
def main():
str1 = ‘hello, world!’
# 通过len函数计算字符串的长度
print(len(str1))
# 从字符串中查找子串所在位置
print(str1.find(‘or’))
print(str1.find(‘shit’))
# 检查字符串是否以指定的字符串结尾
print(str1.endswith(’!’)) # True
# 将字符串以指定的宽度居中并在两侧填充指定的字符
print(str1.center(50, ‘*’))
# 将字符串以指定的宽度靠右放置左侧填充指定的字符
print(str1.rjust(50, ’ '))
str2 = ‘abc123456’
# 从字符串中取出指定位置的字符(下标运算)
print(str2[2])
字符串切片(从指定的开始索引到指定的结束索引)
print(str2[2:5])
print(str2[2:])
print(str2[2::2])
print(str2[::2])
print(str2[::-1])
print(str2[-3:-1])
# 检查字符串是否由数字构成
print(str2.isdigit())
# 检查字符串是否以字母构成
print(str2.isalpha())
# 检查字符串是否以数字和字母构成
print(str2.isalnum())
str3 = ’ jackfrued@126.com ’
print(str3)
# 获得字符串修剪左右两侧空格的拷贝
print(str3.strip())
print(str3.lstrip())
print(str3.rstrip())
使用列表
定义列表,访问列表元素,添加和删除元素
def main():
list1 = [1, 3, 5, 7, 100]
print(list1)
# 下标(索引)运算
print(list1[0])
print(list1[4])
# 添加元素
list1.append(200)
print(list1)
对列表进行排序
def main():
list1 = [‘orange’, ‘apple’, ‘zoo’, ‘internationalization’, ‘blueberry’]
# 默认排序是升序
list2 = sorted(list1)
# sorted函数返回列表排序后的拷贝不会修改传入的列表
# 函数的设计就应该像sorted函数一样尽可能不产生副作用
list3 = sorted(list1, reverse=True)
# 通过key关键字参数指定根据字符串长度进行排序而不是默认的字母表顺序
list4 = sorted(list1, key=len)
print(list1)
print(list2)
print(list3)
print(list4)
# 给列表对象发出排序消息直接在列表对象上进行排序
list1.sort(reverse=True)
print(list1)
列表生成式
import sys
def main():
# f = [x for x in range(100) if x % 2==0]
f = [x for x in range(1, 10)]
print(f)
f = [x + y for x in ‘ABCDE’ for y in ‘1234567’]
print(f)
使用元组
def main():
# 定义元组
t = (‘骆昊’, 38, True, ‘四川成都’)
print(t)
# 获取元组中的元素
print(t[0])
print(t[3])
# 遍历元组中的值
for member in t:
print(member)
# 将元组转换成列表
person = list(t)
print(person)
# 列表是可以修改它的元素的
person[0] = ‘李小龙’
person[1] = 25
print(person)
# 将列表转换成元组
fruits_list = [‘apple’, ‘banana’, ‘orange’]
fruits_tuple = tuple(fruits_list)
print(fruits_tuple)
使用集合
def main():
set1 = {1, 2, 3, 3, 3, 2}
print(set1)
print(‘Length =’, len(set1))
set2 = set(range(1, 10))
print(set2)
set1.add(4)
set1.add(5)
set2.update([11, 12])
print(set1)
print(set2)
set2.discard(5)
# remove的元素如果不存在会引发KeyError
if 4 in set2:
set2.remove(4)
print(set2)
# 遍历集合容器
for elem in set2:
print(elem ** 2, end=’ ‘)
print()
# 将元组转换成集合
set3 = set((1, 2, 3, 3, 2, 1))
print(set3.pop())
print(set3)
# 集合的交集、并集、差集
print(set1 & set2)
# print(set1.intersection(set2))
print(set1 | set2)
# print(set1.union(set2))
print(set1 - set2)
# print(set1.difference(set2))
使用字典
dict = {key:value}
def main():
scores = {‘骆昊’: 95, ‘白元芳’: 78, ‘狄仁杰’: 82}
# 通过键可以获取字典中对应的值
print(scores[‘骆昊’])
print(scores[‘狄仁杰’])
# 对字典进行遍历(遍历的其实是键再通过键取对应的值)
for elem in scores:
print(’%s\t—>\t%d’ % (elem, scores[elem]))
# 更新字典中的元素
scores[‘白元芳’] = 65
scores[‘诸葛王朗’] = 71
scores.update(冷面=67, 方启鹤=85)
print(scores)
if ‘武则天’ in scores:
print(scores[‘武则天’])
print(scores.get(‘武则天’))
# get方法也是通过键获取对应的值但是可以设置默认值
print(scores.get(‘武则天’, 60))
# 删除字典中的元素
print(scores.popitem())
print(scores.popitem())
print(scores.pop(‘骆昊’, 100))
# 清空字典
scores.clear()
print(scores)