#前面的题目,求1,-2,3,-4,5,-6,。。。-100的和
list = [(i*(-1)**(i+1)) for i in range(1,101)]
print(list)
sum = 0
for j in list:
sum += j
print(sum)
题:对列表每个数倒叙,但整体顺序不变
a = [123,4567,12,3456]
i = 0
while i < len(a):
b = 0
while a[i]>0:
b = b*10+a[i]%10
a[i] = a[i]//10
a[i] = b
i += 1
print(a)
P.S.首先shift+enter是进行下行编辑,这样就不需要点到最后再enter了
然后ctrl+shift+方向键进行全行上移或下移
for 循环配上continue有非常奇妙的效果
再次提醒自己,养成注释的良好习惯
\t和空格在一起时,只有当空格在\t后,空格才有效果
这周是3月4日到3月10日,拖欠了两天,确实是不应该
这周讲了基本数据类型,有整型,浮点型,布尔类型,复数,字符串,列表,元祖,字典,集合,现在来说比较特殊的是布尔类型,只有True和False,一般来说False就是0,非0即为True,在python中的混合类型表达式中,首先将要操作的对象转换成表达式中最复杂的操作对象的类型,然后进行算法操作。
也讲了将十进制类型强制转换为其他进制的函数,有hex(),bin(),oct(),和将其他进制转换成十进制的方法int(’原来进制的数’,要转换的进制用阿拉伯数字表示),讲了函数的命名,变量的命名,标识符的命名,大体规则一致,主要是由字母,数字,下划线组成,其中第一位不能数字,变量命名要能够辨识。获得python中关键词的方法是
import keyword
print(keyword,kwlist)
讲到了各种运算符,算数运算符,复合赋值运算符,比较运算符,逻辑运算符,逻辑运算符中的优先级为not>and>or
然后就是讲到了循环语句,while型,for型,while嵌套,for的嵌套,while…else与break,continue,for …elif…else与break,continue的使用,值得注意的是,while不能遍历,for可以。
提到了python标准库,decimal()定点数与浮点数的计算,可以使运算更加精确,引用方式,
from decimal import *
getcontext().prec = 6#(保留6位数字,因为它本身也是不精确的)
讲到了函数,定义函数的方式,定义部分是形参,引用部分是实参,函数中可能有return,后面不接数值时,默认返回None,return两个作用:返回参数,打断函数,当然,return可以返回多个值。
那么函数的参数类型有位置参数,默认参数,关键词参数,可变参数,不管怎样,位置参数一定要在最前面,函数参数的顺序是位置参数,元组参数,默认参数,字典参数,使用打散元组arg,字典**kwarg,函数重点讲了函数的嵌套,递归函数,递归函数逻辑性强,比较粗暴,重点是用递归求阶乘,和求斐波那契数列,这是最容易的递归函数。
字符串是用单双三引号包围的不可变数据类型,所以对字符串进行任何增删切改都是建立了新的变量,可以通过索引赋值给另外一个变量,sort(),reserve原地修改列表,修改之后原列表的顺序将无法恢复,所以可以用0切片的方法[:]新建一个变量复制原字符串获得。字符串可以切片,遍历,拼接,字符串的拆分有三种,split:split(‘x’,maxsplit=?)没有maxsplit时切割所有x,有则切割?个
Partition:partition(‘xxx’),将原字符串切割成3部分
Splitlines:splitlines(True/False)True则对\n后进行切割,False则将\n移除并在此切割
字符串的替换有replace,translate。replace将字符串从左到右替换所有个,也可以要求替换前几个;translate需要和marketrans联用;marketrans中intab,outtab,字符串长度必须相等,输出项是个字典!
字符串的修饰主要是对字符串进行大小写变换,增加空格等填充物使字符串居中,左右对齐,删除空格的操作
Format字符串格式化,这个看下面吧:
使用位置参数,使用关键字参数,填充与格式化,确定精度与进制
print('我的名字叫{name},来自{adress}'.format(adress='henan',name='name'))
print('我的名字叫{:*^10},今年{:!<7}岁了,体重{:#>7}千克'.format('PGWAN',105,59))#居中,左对齐,右对齐
print('长方形的长是{:.3f},长方形的宽是{:.2f},求面积'.format(5/3,9/4))#确定精度
print(‘二进制是{:b}’.format(100))
print(‘八进制是{}’.format(100))
print(‘十六进制是{:x}’.format(100))
还有字符串的变形和判断,这个先了解,用的时候再查表,转义字符比较好用,元字符串R,r再字符串前可以使转义字符失效。
列表的基本格式:中括号,里面内容用“,”隔开,列表可以遍历,切片(得到的还是列表),变量的接收与解码*,即一对一的接收或用列表接收,用*解码;
列表添加元素append,insert,extend,insert,可以负数插入,索引从0开始,但超过索引就会插入到最后一个
name = ['12','23','34','45']
name.insert((-1),'51')
print(name)
列表删除元素pop,remove,del。Pop默认从右向左删,del list 只会剩下一个列表的类型,del list[:],剩下一个空列表。
列表修改:可以直接修改,reverse对列表内容进行翻转,sort()默认ASCII级别升序操作,也可以在括号内加入内容进行其他操作;另外,内置函数stored(),也可以对列表进行排序,并且返回一个新的列表
列表查找:count,index
二维列表的索引:list = [[1,2],[3,4]],list[0][1]==1
列表深浅拷贝:外层,都新建一个内存地址;内层:内层,浅拷贝没有新建,深拷贝全部新建,具体来说,
可变数据:{浅拷贝:你变我不变;深拷贝,你变我也变}
不可变数据:{浅拷贝:你变我不变;深拷贝,你变我不变}
元组:不可变数据类型,但元组内有可变类型时可以修改它。索引,遍历,切片,重复与合并;多维元组的索引类似列表,值得注意的是(1,)是元组,(1)是整型
元组中有Tuple函数,可以将字符串(会将所有字符分开并各自打引号),列表,元组转化成元组,都是只对外部元组化
list = [1,2,3,'123456']
tup = tuple(list)
print(tup)#(1, 2, 3, '123456')
str = '123456'
print(tuple(str))#('1', '2', '3', '4', '5', '6')
list1 = [['123',456],7,8,9]
print(tuple(list1))#(['123', 456], 7, 8, 9)
二维元组可以用两个变量来进行索引,
tup = ((1,2),(3,4),(5,6))
for i,j in tup:
print(i,j)
enumerate()函数:for循环每遍历一次,就得到一个下标和数值的元组对
for index,product in enumerate(goods,start=1):
msg = '商品的序号:{},名称:{}'.format(index,product)
print(msg)