-
a.title()首字母大写
-
a.upper()所有字母大写
-
a.lower()所有者字母小写
-
\t空格
-
\n换行
-
rstrip()剔除尾部空格
-
lstrip()剔除头部空格
-
Python使用两个乘号表示乘方运算: 3 ** 2=9
-
str()可以将非字符型转化为字符型便于输出
-
python中注释写在#后面
-
列表:类似于数组索引从0开始而不是1,可以输入-1显示倒数第一,往后类推–2/-3/-4。切记不可越界。
-
列表中添加:使用方法append(),例如
motorcycles = [‘honda’, ‘yamaha’, ‘suzuki’]
print(motorcycles)
motorcycles.append(‘ducati’)
print(motorcycles)
方法append()将元素’ducati’添加到了列表末尾(见❶),而不影响列表中的其他所有元素:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
在一个空列表中添加
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
-
在列表中插入:使用insert()方法
例如motorcycles.insert(0, ‘ducati’)
-
列表中删除:
del a[0] -
pop()方法,弹出尾部元素
motorcycles = [‘honda’, ‘yamaha’, ‘suzuki’]
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
结果:
[‘honda’, ‘yamaha’, ‘suzuki’]
[‘honda’, ‘yamaha’]
suzuki -
remove()知道元素名字而不知道位置
方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。 -
sort()方法进行永久性排序
cars = [‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
cars.sort(reverse=False)#或True按首字母倒序
print(cars) -
sorted()对列表进行临时排序
-
reverse()永久性反转列表元素
-
len()确定列表长度,从1开始
cars = [‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
print(len(cars)) -
for循环
agicians.py
magicians = [‘alice’, ‘david’, ‘carolina’]
for magician in magicians:
print(magician)
后面要缩进,若没有缩进则不进入循环
22. range()打印数字
23. list()可以有直接将range()打印出来的数字转化为列表,即list(range())
24. min()max()sum()处理列表的函数
25. a[0:4]切片,处理列表元素
26. 元组:和list相似,但设置后就不能改变使得代码更安全,不变的本质是指向的是每一个元素的指向没有改变,至于指向的元素本身是可以改变的。
27. 用tuple()
表示,圆括号,注意和列表的区别。
当tuple中只有一个元素是tuple(1,)要加,用于区别数学符号()。
29. 遍历这个字典:
user.py
user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', }
for key, value in user_0.items():
print("\nKey: " + key)
print("Value: " + value)
-
只遍历键:
favorite_languages = { ‘jen’: ‘python’, ‘sarah’: ‘c’, ‘edward’: ‘ruby’, ‘phil’: ‘python’, }
for name in favorite_languages.keys():
print(name.title()) -
遍历字典中的所有值:调用value()函数
for language in favorite_languages.values():
-
如果你使用的是Python 2.7,请使用raw_input()而不是input
-
函数的关键字 def + 函数名():
-
用函数判断大小
def printMax(a,b):
if a>b:
print(a,‘is maximum’);
elif a==b:
print(a,‘is equal to’,b);
else:
print(b,‘is maximum’)
printMax(3, 4)
x = 5
y = 5
printMax(x, y) -
全局变量的关键词global
使用as可以给函数再起一个名字
34.编码的历史:
由于计算机是美国人发明的,最开始的语言是英文,即用ask II码表示。
1个字节八位只能表示256个字符(-128,127)。但是随着计算机的发展,世界各国语言多种,256个字符显然不够用,因此产生了新的编码,即unicode码。
unicode码占2个字节,解决了容量不够的问题,但如果都用2个字节,占用的体积比较大,传输保存并不划算。
因此产生了UTF-8 码又叫“可变长编码”,UTF-8 码对unicode码进行了划分,用哪一部分就取哪一部分。
35:计算机中一般用UTF-8 码来储存字符,但用unicode码来显示字符。避免了乱码问题且节约空间。
36:判断BMI:
h = int(input("请输入身高:"))
k = int(input("请输入体重:"))
BMI = h / k
if BMI > 32:
print("严重肥胖")
if 28<BMI<=32:
print("肥胖")
if 25<BMI<=28:
print("过重")
if 18.5<BMI<=25:
print("正常")
if BMI<=18.5:
print("过轻")
37:函数
可变参数*a形成一个tuple,可变参数名**a形成一个list
38:递归
会爆栈
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
尾递归优化:理论上不会,但大部分编程语言没有优化,还是会爆
def fact_iter(num, product):
if num == 1:
return product
return fact_iter(num - 1, num * product)
Iterable 和 Itereator 的区别
前者全是全部算,出后者是用多少算多少具有惰性。
map和reduce函数
map是元素本身,reduce是元素之间。
字符转int
from functools import reduce
def fn(x,y):
return x*10+y
def char2num(s):
digits ={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
return digits[s]
a=reduce(fn,map(char2num,'13579'))
print(a)
简化
from functools import reduce
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def str2int(s):
def fn(x, y):
return x * 10 + y
def char2num(s):
return DIGITS[s]
return reduce(fn, map(char2num, s))
进一步
from functools import reduce
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def char2num(s):
return DIGITS[s]
def str2int(s):
return reduce(lambda x, y: x * 10 + y, map(char2num, s))
map使用
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字:
def normalize(name):
name = name[0].upper()+name[1:].lower()
return name
L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
print(L2)
reduce使用
Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积:
from functools import reduce
def prod(l):
return reduce(lambda x,y:x*y,l)
print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))
if prod([3, 5, 7, 9]) == 945:
print('测试成功!')
else:
print('测试失败!')
filter使用
用于筛选数据中的元素
筛选法求素数
def _int_iter():#生成器生成从3开始的无限奇数序列
n = 1
while True:
n = n + 2
yield n
def _not_divisible(n):#定义筛选函数
return lambda x:x % n > 0
def primes():
yield 2 #先返回一个2
it = _int_iter() # 初始序列
while True:
n = next(it) # 返回序列的第一个数
yield n
it = filter(_not_divisible(n), it) # 构造新序列
for n in primes():#构造循环条件,使之可以输出任何范围的素数序列
if n < 1000:
print(n)
else:
break