Python(基本语法)

  1. a.title()首字母大写

  2. a.upper()所有字母大写

  3. a.lower()所有者字母小写

  4. \t空格

  5. \n换行

  6. rstrip()剔除尾部空格

  7. lstrip()剔除头部空格

  8. Python使用两个乘号表示乘方运算: 3 ** 2=9

  9. str()可以将非字符型转化为字符型便于输出

  10. python中注释写在#后面

  11. 列表:类似于数组索引从0开始而不是1,可以输入-1显示倒数第一,往后类推–2/-3/-4。切记不可越界。

  12. 列表中添加:使用方法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)
  1. 在列表中插入:使用insert()方法

    例如motorcycles.insert(0, ‘ducati’)

  2. 列表中删除:
    del a[0]

  3. pop()方法,弹出尾部元素

    motorcycles = [‘honda’, ‘yamaha’, ‘suzuki’]
    print(motorcycles)
    popped_motorcycle = motorcycles.pop()
    print(motorcycles)
    print(popped_motorcycle)
    结果:
    [‘honda’, ‘yamaha’, ‘suzuki’]
    [‘honda’, ‘yamaha’]
    suzuki

  4. remove()知道元素名字而不知道位置
    方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

  5. sort()方法进行永久性排序

    cars = [‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
    cars.sort(reverse=False)#或True按首字母倒序
    print(cars)

  6. sorted()对列表进行临时排序

  7. reverse()永久性反转列表元素

  8. len()确定列表长度,从1开始

    cars = [‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
    print(len(cars))

  9. 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)
  1. 只遍历键:

    favorite_languages = {   ‘jen’: ‘python’,   ‘sarah’: ‘c’,   ‘edward’: ‘ruby’,   ‘phil’: ‘python’,   }
    for name in favorite_languages.keys():
       print(name.title())

  2. 遍历字典中的所有值:调用value()函数

    for language in favorite_languages.values():

  3. 如果你使用的是Python 2.7,请使用raw_input()而不是input

  4. 函数的关键字 def + 函数名():

  5. 用函数判断大小

    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)

  6. 全局变量的关键词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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值