python之入门篇,,1., 连接符,返回


1., 连接符,返回的是多个值,返回逗号两边的值
+ 连接符,返回一个值

2.print 后面的值必须先定义再调用

3.‘‘‘....‘‘‘ 代表多行表示字符串,省略\n

4.r 表示后面的内容是字符串,省去\的转义

5.u(u必须紧靠语句) 对字符串进行Unicode编码
# -*- coding: utf-8 -*- 遇见unicodeDecodeErrot就进行这个语句

6.10 / 4 ==> 2 整数之间运算永远都是整数

7.and 1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

8.or 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

补充:not
10%2=========>余数为0(空)
not 10%2 =====>输出为:True

9.L = [] 列表,正数从L[0]开始,倒数从L[-1]开始

10.L.insert(0, ‘Paul‘) ‘Paul‘ 将被添加到索引为0的位置上(也就是第一个),而原来索引为0的Adam同学,以及后面的所有同学,都自动向后移动一位。

11. append() ==> L.append(‘Paul‘)
把新同学追加到 list 的末尾:

12.pop() 删除表内元素
==> 删除后面两个元素,注意下标都是2
L = [‘Adam‘, ‘Lisa‘, ‘Paul‘, ‘Bart‘]
L.pop(2)
L.pop(2)

13.L[0],L[-1] = L[-1],L[0]
同一个列表替换

14.tuple ==> t = ()
一旦建立,就不能更改了

15.t = (‘Adam‘,)必须加一个逗号,表明是tuple
Python之创建单元素tuple

16.Python之“可变”的tuple
t = (‘a‘, ‘b‘, [‘A‘, ‘B‘])
L = t[2] //这一步也是必须的,连接列表L和元组t的关键
L = [1,2] //这里是改变不了tuple,必须用L[0],L[1] = 1,2
print t

17.if-else语句: //Python是靠缩进来规定数据块的
==>
score = 55
if score >= 60:
print ‘passed‘
else:
print ‘failed‘

18.for循环
L = [75, 92, 59, 68]
sum = 0.0
for score in L:
sum += score
print sum / 4

19.while之100内的奇数和
L = [75, 92, 59, 68]
sum = 0
x = 1
while x <=100:
sum += x
x += 2
print sum

20.break
==>注意:python里的i++不成立
sum = 0
x = 1
n = 1
while True:
if n > 20:
break
sum = sum+x
x = 2*x
n = n+1

21.continue
sum = 0
x = 0
while True:
x = x + 1
if x%2 == 0:
continue
if x > 100:
break
sum += x

22.多重循环
------------最一般的方法
for x in [1,2,3,4,5,6,7,8,9]:
for y in [0,1,2,3,4,5,6,7,8,9]:
if x < y:
print x,y
------------好一点的方法//这里的range:Python 的 for i in range (m,n),相当于 C++/Java/C# 里面的 for (int i = m; i < n; i++)。
for x in range(1,10):
for y in range(x+1,10):
print x*10+y

23.dict之key:value:注意冒号,逗号
d={
‘adam‘ : 95,
‘lisa‘ : 85
}

24.d.get()-----解决key不存在,报错的情况
print d[‘‘]
print d.get(‘‘) //注意输出加不加get的括号变化情况

25.Python更新dict
d[72] = ‘Paul‘ //如果这个key没出现在dict中就会添加,有的话就是修改

26.for遍历dict
d = {
‘Adam‘: 95,
‘Lisa‘: 85,
‘Bart‘: 59
}
for key in d:
print key,‘:‘,d[key]

27.set--------设置成无序,不重复的,重复的将被清除
>>> s = set([‘A‘, ‘B‘, ‘C‘, ‘C‘])
>>> print s
set([‘A‘, ‘C‘, ‘B‘])
>>> len(s)
3

28.更改大小写之set
L = [‘Adam‘,‘Lisa‘,‘Bart‘,‘Paul‘]
m = []
for name in L:
var = name.lower()
m.append(var)
s = set(m)

29.遍历多组元组
s = set([(‘Adam‘, 95), (‘Lisa‘, 85), (‘Bart‘, 59)])
for x in s:
print x[0],‘:‘,x[1]

30.Python之 更新set(s.add(),s.remove())
s = set([‘Adam‘, ‘Lisa‘, ‘Paul‘])
L = [‘Adam‘, ‘Lisa‘, ‘Bart‘, ‘Paul‘]
for name in L:
if name in s:
s.remove(name)
else:
s.add(name)
print s
----------------------------------------------------------------------
| *Python内置函数地址https://docs.python.org/3.7/library/functions.html|
----------------------------------------------------------------------
31.调用函数:
绝对值的函数 abs
help(abs) 查看abs函数的帮助信息
比较函数 cmp(x, y) 就需要两个参数,如果 x<y,返回 -1,如果 x==y,返回 0,如果 x>y,返回 1
int()函数可以把其他数据类型转换为整数
str()函数把其他类型转换成 str:
sum()函数接受一个list作为参数,并返回list所有元素之和
例子:1*1,2*2,3*3,4*4....100*100的和(三种方法)
第一种:
M = range(1,101)
L = []
for num in M:
num *= num
L.append(num)
print sum(L)
第二种:
L = xrange(1, 101) //输出是xrange(1,101),如果是range(1,101)输出就是[1,2,3,4...,100]
print sum([i*i for i in L])
第三种:
print sum([i**2 for i in xrange(1,101)])

32.Python之编写函数:def
def square_of_sum(L):
return sum([i**2 for i in L])
print square_of_sum([1, 2, 3, 4, 5])
注意:如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。
return None可以简写为return。

33.Python函数之返回多值
Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
import math
def quadratic_equation(a, b, c):
num1 = b**2-4*a*c
if num1 >= 0:
x1 = (-b + math.sqrt(num1))/(2*a)
x2 = (-b - math.sqrt(num1))/(2*a)
return x1,x2
else:
return ‘无解‘
print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)

34.Python之定义默认参数
def greet(str=‘world‘):
print ‘hello,‘,str,‘.‘ // 同 print "Hello,%s." % name

greet()
greet(‘Bart‘)

35.Python之定义可变参数:可变参数的名字前面有个 * 号
import math
def average(*arg):
if len(arg) !=0:
res = sum(arg)*1.0/len(arg)
return res
else:
return 0.0
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)

36.对list进行切片slice,默认返回的是list
L = range(1, 101)
#前10个数
print L[0:10]
#3的倍数
print L[2::3]
#不大于50的5的倍数
print L[4:51:5]

37.倒序切片
L=range(1,101)
print L[4::5][-10:] //第二个中括号对第一个得出的list进行再次筛选

38.对字符串切片:字符串 ‘xxx‘和 Unicode字符串 u‘xxx‘也可以看成是一种list,每个元素就是一个字符
对字符串首字母进行大写:用到了upper()函数:
def firstCharUpper(s,n=1):
return s[0:n].upper()+s[n:]

39.迭代
1到100:7的倍数
for i in range(1,101)[6::7]:
print i
40.索引迭代:枚举函数enumerate()的原理
调用函数zip():将两个list合成一个:[(1,adam),(2,Lisa),(3,Bart),(4,Paul)]
L = [‘Adam‘, ‘Lisa‘, ‘Bart‘, ‘Paul‘]
for index, name in zip([1,2,3,4],L):
print index, ‘-‘, name

41.迭代dict的value(key)
d = { ‘Adam‘: 95, ‘Lisa‘: 85, ‘Bart‘: 59, ‘Paul‘: 74 }
res = sum(d.values())*1.0/ len(d.values()) //values()将dict返回为list
print res
同:
d = { ‘Adam‘: 95, ‘Lisa‘: 85, ‘Bart‘: 59, ‘Paul‘: 74 }
sum = 0.0
for i in d.itervalues(): //itervalues()函数直接从d中抽取,节省内存,把dict转化为list的过程
sum = sum + i
print sum/len(d)

42. 迭代dict的key和value(items() //将dict返回为tuple,和iteritems()同values()和itervalues())
d = { ‘Adam‘: 95, ‘Lisa‘: 85, ‘Bart‘: 59, ‘Paul‘: 74 }
sum = 0.0
for k, v in d.iteritems():
sum = sum + v
print k,‘:‘,v // print(‘%s:%d‘ %(k,v))
print ‘average‘, ‘:‘, sum*1.0/len(d.items())

43.生成列表
print [i * (i+1) for i in range(1,100,2)]

44.str.join(list):中的str是list列表的连接符
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
以上实例输出结果如下:
a-b-c

45.复杂表达式
d = { ‘Adam‘: 95, ‘Lisa‘: 85, ‘Bart‘: 59 }
def generate_tr(name, score):
if score < 60:
return ‘<tr><td>%s</td><td style=color:red>%d</td></tr>‘ %(name,score)
return ‘<tr><td>%s</td><td>%s</td></tr>‘ % (name, score)

tds = [generate_tr(name, score) for name, score in d.iteritems()]
print ‘<table border="1">‘
print ‘<tr><th>Name</th><th>Score</th><tr>‘
print ‘\n‘.join(tds)
print ‘</table>‘
把打印出来的结果保存为一个html文件,就可以在浏览器中看到效果了:
<table border="1">
<tr><th>Name</th><th>Score</th><tr>
<tr><td>Lisa</td><td>85</td></tr>
<tr><td>Adam</td><td>95</td></tr>
<tr><td>Bart</td><td>59</td></tr>
</table>

46.请编写一个函数,它接受一个 list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略。
def toUppers(L):
return [i.upper() for i in L if isinstance(i,str)] //isinstance(x,str)可以判断x是否为字符串返回True或者False

47.多层表达式
print [x*100+10*y+z for x in range(1,10) for y in range(0,10) for z in range(0,10) if x==z]
同:
print [100*m+10*n+m for m in range(1,10) for n in range (0,10)]

python之入门篇

评论关闭