1625-5 王子昂 总结《2016年1月14日》 【连续第106天总结】
A. python一节 100%
B. 今天从昨天看的数字一章的练习中挑了两个做,分别是
取余。给定一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。
随机数,生成一个有N个元素的由随机数n组成的列表,然后随机取N个随机数出来对它们排序,再显示这个子集。
python的语法跟C++区别还是蛮大的,从最开始的'/'代表真正除法(会有小数),而'//'代表整除(即地板除,去尾法)
到不需要分号而只需要用缩进来代表结构,以及if和while后面都要有冒号(这点我已经忘记无数次了)
print在显示字符串的时候可以使用str(x)将数字转换成字符串然后用'+'拼接起来,也可以用%d%s%r等占位符来显示数字
注意:python2.7中print加不加括号都是可以的,但在python3里必须加括号。为了以后换3时减少麻烦,所以从现在就开始加吧!
python中的Print默认是带换行的,取消这项功能的方法是在语句最后加上一个',',注意不是在引号内,而是在引号外加。不要问我为什么知道_(:з」∠)_
PyCharm中使用中文需要在第一行或第二行前加上#encoding:utf-8,否则会报错╮(╯_╰)╭
#!/usr/bin/python #encoding:utf-8 total=1.00 print("请输入一个小于1美元的金额\n") while(total>=1): try: total=float(raw_input()) if total>=1: print("请输入一个小于1美元的金额\n") except: print("请输入一个小于1美元的金额\n") total*=100 tf=total//25 t=(total%25)//10 o=total%25%10 print("最小的硬币数为%d"%(tf+t+o)) if tf!=0: print ("%d枚25美分\t"%(tf)) if t!=0: print ("%d枚10美分\t"%t) if o!=0: print ("%d枚1美分\t"%(o))
随机数的要点是加上random模块,并使用其中提供的大量随机数函数
模块,相当于C++中的头文件,使用import声明
但是注意自己写的文件不要与官方模块同名,造成歧义……
在python中因为不像C++中区分头文件和源代码(.h 和.cpp),而是同样为.py
我刚开始给本文件就命名为random,结果在使用random模块的时候看来出现歧义了,randint等函数死活用不了╮(╯_╰)╭
最后发现路径好像有点不对,给文件重命名以后就好了
注意调用模块中的函数时要加上模块名称,以示区分,如 random.randint()
转换函数float的时候,如果输入的是字符,python会报错无法转换而不是自动根据ASCII码进行转换,因为使用try...except来捕捉异常
虽然说在Python中变量使用前无需声明,但是列表似乎还是要声明的……即使是a=[],然后在使用时append方法动态添加元素
下一章才是列表╮(╯_╰)╭写完这个习题再看
代码如下:
#!/usr/bin/python #encoding:utf-8 import random N=random.randint(1,100) print "一共有%d个数字"%N r=[] for i in range(N): r.append(random.randint(0,2**31-1)) N=random.randint(1,N) print "一共取了%d个数字出来"%N a=[] for i in range(N): a.append(random.choice(r)) for i in range(1,N): min=i for j in range(i,N): if a[j]<a[min]: min=j temp=a[min] a[min]=a[i] a[i]=temp print a[i],
学习字符串的稍微系统的了解了一点UTF-8和ASCII码的区别
ASCII码用一个字节存储所有字符,因此只包含了233个字符,对于英文而言够用,但中文标示完全不可能,因此引入了Unicode
Unicode用1~4个字节表示其他语言的字符,同时支持ASCII,这样可以让很多情况得到兼容无需改变。
东亚字节一般用3个字节表示,少用的特殊的或历史遗留的则用4个字节来表示
python中使用的时候要先用#encoding:utf-8 来声明
但是当写好程序的时候,添加Unicode码支持需要改动极大
string模块和str()、chr()函数需要全部改动为unicode()、unichr(),但是这样一来就无法使用pickle模块
所有字符串使用时要加个前缀u,大部分模块支持unicode,除了Pickle模块
一定要使用pickle时,需要将数据转换为二进制形式
在第三方模块中使用Unicode时需要格外注意,因为它还并不是必须的规定
例如数据库服务器、适配器。web开放框架等等辅助系统,有的需要打补丁,有的需要额外设置
总之,使程序完全支持unicode是一项需要详细考虑,综合全局的工程。
在python中没有字符,只有字符串。单个字符是长度为1的字符串。字符串也是序列,可以用切片操作符得到单个字符。
可以用三引号来包含跨行和含有大量转义字符而不需转义的字符串
字符串结尾不是NULL和\0
r/R前缀可以使特殊字符串转换为原始字符串,即不存在转义字符的字符串
C. 明日计划
python好多啊_(:з」∠)_要学好久,加油
明天两节,把序列看完