Day 1-开始记录的第一篇
Register关键字:
暗示这个变量可能会经常使用,需要放进速度较快的寄存器中存取。
但是有几点限制:
1、register变量必须是能被CPU接受的类型
2、register变量可能不放在内存中,所以不能用&来取地址
3、register变量只能是局部自动变量和形式参数,其他如全局变量不行
4、局部静态变量也不能定义为register变量
5、不能定义任意多个register变量,因为寄存器有限,且有些寄存器只能存取特定类型的变量(比如字符型或者指针)
Auto关键字:
当你不知道要定义的变量是什么类型是都可以用auto,但是必须初始化,一旦初始化赋值后,auto会根据赋值结果自动给变量分配类型
exp:auto a = 10 //赋值完auto就把a的类型定为int了
#ifdef #ifndef :
C中的条件编译指令,满足条件才执行的预编译指令,主要是为了防止重复定义,python中没有这样的机制,可以试试用lambda函数设置条件
按位与&,按位或 | 按位异或 ^(就是两边先取反再或) 按位取反 ~ a<<4 左移4位 a >> 4右移四位
使用circle画圆形:
导入Tkinter模块,Tkinter模块主要是提供展示,方位控制的小工具,包括了Tk ,框架,标签,文本,画布,按钮等
调用了class Canvas(Widget, XView, YView),展示画布x,y的坐标,Wiget可以定义背景颜色,然后还有canvas.create_oval(x1,y1,x2,y2,...)画椭圆的坐标,反正我也不懂就一通操作
学用line画直线:
遇到一个问题,import和 from import *有什么区别,因为如下图所示
这种就是正确写法
这种就报错了


改成这样就对了,因为from import*导入的Canvas函数就是模块中的函数,而import的Canvas函数是未被定义的
接下来我们再画直线调用canvas.create_line(x0,y0,x0,y1,fill = 'red'),同上面的椭圆类似,同理可以画方形,坐标以及大小需要控制,合理的话可以画出图案
打印杨辉三角形(哇,蓝瘦)
from sys import stdout
if __name__ == '__main__':
a = []
for i in range(10):
a.append([])
for j in range(i+1):
if j == 0 | j == i:
a[i][j] = 1
else:
a[i][j] = a[i -1][j - 1] + a[i - 1][j]
for i in range(10):
for j in range(i+1):
stdout.write(str(a[i][j]))
stdout.write(' ')
print
然后就报错了:
Traceback (most recent call last): File "F:/Python100/zqxt061.py", line 14, in <module> a[i][j] = 1 IndexError: list assignment index out of range Process finished with exit code 1
因为定义列表a的时候是直接附了一个列表元素,而没有说明列表元素的大小,所以会报错下标越界,要先给列表元素定大小,然后才能通过下标直接赋值,修改如下:
if __name__ == '__main__':
a = []
for i in range(10):
a.append([])
for j in range(10):
a[i].append(0)
for i in range(10):
a[i][0] = 1
a[i][i] = 1
for j in range(1,i):
a[i][j] = a[i - 1][j-1] + a[i - 1][j]
from sys import stdout
for i in range(10):
for j in range(i + 1):
stdout.write(str(a[i][j]))
stdout.write(' ')
print
数组最大元素和第一个元素交换,最小元素和最后一个元素进行交换:
def inp(numbers):
for i in range(9):
numbers.append(int(raw_input('Input a number:\n')))
def max_min(array):
min = max = 0
for i in range(1,len(array)):
if array[min] > array[i]:
min = i
if array[max] < array[i]:
max = i
return min,max
def outp(array):
for i in range(len(array)):
print array[i],#加,print就不会换行了
if __name__ == '__main__':
array = []
inp(array)
min,max = max_min(array)
if max == len(array) - 1 & min == array[0]:#如果array[0]就是最小的,那之后换最小值的时候就会出错,所以要先进行判断
array[min],array[max] = array[max],array[min]
elif max != len(array) -1 & min == 0:
array[len(array) - 1], array[min] = array[min], array[len(array) - 1]
array[0], array[max] = array[max], array[0]
else:
array[0],array[max] = array[max],array[0]
array[len(array) - 1],array[min] = array[min],array[len(array) - 1]
outp(array)
attention:考虑最小或者最大元素就是要交换的第一个元素或最后一个元素,否则交换的时候会出错
浙公网安备 33010602011771号