51.学习使用按位与 &(两位同时为“1”,结果才为“1”,否则为0)
#题目:学习使用按位与 &(两位同时为“1”,结果才为“1”,否则为0)
#程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
#例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值为1
a=0x77
b=a&3
print('a&b=%d'%b)
b&=7
print('a&b=%d'%b)
52.学习使用按位或 |
#题目:学习使用按位或 |
#程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
a=77
b=a|3
print('a|b is %d'%b)
b|=7
print('a|b is %d'%b)
53.学习使用按位异或 ^
#题目:学习使用按位异或 ^
#程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
a = 77
b = a ^ 3
print('The a ^ 3 = %d' % b)
b ^= 7
print('The a ^ 3 = %d' % b)
54.取一个整数a从右端开始的4〜7位
#题目:取一个整数a从右端开始的4〜7位。
'''程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。'''
a=int(input('输入一个数字:\n'))
b=a>>4
c=~(~0<<4)
d=b&c
print('%o\t%o'%(a,d))
55.学习使用按位取反~
'''
题目:学习使用按位取反~
程序分析:~0=1; ~1=0;
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
'''
a = 234
b = ~a
print('The a\'s 1 complement is %d' % b)
a = ~a
print('The a\'s 1 complement is %d' % b)
56.tkinter画图,学用circle画圆形
Tkinter 画布(Canvas)组件和 html5 中的画布一样,都是用来绘图的。您可以将图形,文本,小部件或框架放置在画布上。Canvas 是一个通用的组件,通常用于显示和编辑图形。你可以用它来绘制线段、圆形、多边形,甚至是绘制其它组件。在 Canvas 组件上绘制对象,可以用 create_xxx() 的方法(xxx 表示对象类型,例如线段 line,矩形 rectangle,文本 text 等)
#题目:画图,学用circle画圆形
from tkinter import *
canvas=Canvas(width=800,height=600,bg='yellow')
canvas.pack(expand=YES,fill=BOTH)
k=1
j=1
for i in range(0,26):
canvas.create_oval(310-k,250-k,310+k,250+k,width=1)
k+=j
j+=0.3
mainloop()
理解mainloop():GUI编程都有一个主体的死循环,一旦退出这个死循环,程序就结束了,mainloop就可以理解为这样一个循环,只是这个循环里面还有消息队列,这个概念没什么难以理解的,理解不了只是因为知识面太小了,玩一玩pygame库,一些基本的GUI原理就都懂了
57.tkinter画图,学用line画直线
#题目:tkinter画图,学用line画直线
from tkinter import *
canvas = Canvas(width=300, height=300, bg='green')
canvas.pack(expand=YES, fill=BOTH)
x0 = 263
y0 = 263
y1 = 275
x1 = 275
for i in range(19):
canvas.create_line(x0, y0, x0, y1, width=1, fill='red')
x0 = x0 - 5
y0 = y0 - 5
x1 = x1 + 5
y1 = y1 + 5
x0 = 263
y1 = 275
y0 = 263
for i in range(21):
canvas.create_line(x0, y0, x0, y1, fill='red')
x0 += 5
y0 += 5
y1 += 5
mainloop()
58.tkinter画图,学用rectangle画方形
#tkinter画图,学用rectangle画方形
from tkinter import *
root = Tk()
root.title('Canvas')
canvas = Canvas(root, width=400, height=400, bg='yellow')
x0 = 263
y0 = 263
y1 = 275
x1 = 275
for i in range(19):
canvas.create_rectangle(x0, y0, x1, y1)
x0 -= 5
y0 -= 5
x1 += 5
y1 += 5
canvas.pack()
root.mainloop()
59.tkinter画图,综合例子
'''题目:tkinter画图,综合例子。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位'''
from tkinter import *
canvas = Canvas(width=300, height=300, bg='green')
canvas.pack(expand=YES, fill=BOTH)
x0 = 150
y0 = 100
canvas.create_oval(x0 - 10, y0 - 10, x0 + 10, y0 + 10)
canvas.create_oval(x0 - 20, y0 - 20, x0 + 20, y0 + 20)
canvas.create_oval(x0 - 50, y0 - 50, x0 + 50, y0 + 50)
import math
B = 0.809
for i in range(16):
a = 2 * math.pi / 16 * i
x = math.ceil(x0 + 48 * math.cos(a))
y = math.ceil(y0 + 48 * math.sin(a) * B)
canvas.create_line(x0, y0, x, y, fill='red')
canvas.create_oval(x0 - 60, y0 - 60, x0 + 60, y0 + 60)
for k in range(501):
for i in range(17):
a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k
x = math.ceil(x0 + 48 * math.cos(a))
y = math.ceil(y0 + 48 + math.sin(a) * B)
canvas.create_line(x0, y0, x, y, fill='red')
for j in range(51):
a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k - 1
x = math.ceil(x0 + 48 * math.cos(a))
y = math.ceil(y0 + 48 * math.sin(a) * B)
canvas.create_line(x0, y0, x, y, fill='red')
mainloop()
60.计算字符串长度
#计算字符串长度
str1='apple'
print(len(str1))
#方法二
str2='tomato'
length=str1.__len__()
print(length)
61.杨辉三角形
#题目:打印出杨辉三角形(要求打印出10行如下图)
a=[]
for i in range(10):
a.append([])#append()方法用于在列表末尾添加新的对象
for j in range(10):
a[i].append(0)
#全1
for i in range(10):
a[i][0]=1
a[i][i]=1
for i in range(2,10):
for j in range(1,i):
a[i][j]=a[i-1][j-1]+a[i-1][j]#三角形数
#输出最终结果
for i in range(10):
for j in range(i+1):
print(str(a[i][j]))
#print(' ')
print()
#方法二:定义求三角和的函数;再for循环调用函数
n=10
def lst(i,j):
if i==j or j==1:#同行同列=1,第一列=1
return 1
else:#其余=三角形和
return lst(i-1,j-1)+lst(i-1,j)#如(4,3)=(3,2)+(3,3)
for i in range(1,n+1):
for j in range(1,i+1):
print(lst(i,j))
print()
62.字符串.find() 查找字符串
#题目:查找字符串
s1='aeggpple'
s2='egg'
print(s1.find(s2))#1(从0开始)
63.使用tkinter画椭圆
#题目:使用tkinter画椭圆
import tkinter #Canvas对象报错
from tkinter import *
x=360
y=160
top=y-30
bottom=y-30
canvas=Canvas(width=400,height=600,bg='red')
for i in range(20):
canvas.create_oval(250-top,250-bottom,250+top,250+bottom)#创建椭圆
top-=5
bottom+=5
canvas.pack()
mainloop()
64.利用tkinter画图
#题目:利用ellipse 和 rectangle 画图
if __name__ == '__main__':
from tkinter import *
canvas = Canvas(width = 400,height = 600,bg = 'white')
left = 20
right = 50
top = 50
num = 15
for i in range(num):#for循环创建图形
canvas.create_oval(250 - right,250 - left,250 + right,250 + left)
canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)
canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2))
right += 5
left += 5
top += 10
canvas.pack()
mainloop()
65.利用tkinter画复杂图
import math
class PTS:
def __init__(self):
self.x = 0
self.y = 0
points = []
def LineToDemo():
from tkinter import *
screenx = 400
screeny = 400
canvas = Canvas(width = screenx,height = screeny,bg = 'white')
AspectRatio = 0.85
MAXPTS = 15
h = screeny
w = screenx
xcenter = w / 2
ycenter = h / 2
radius = (h - 30) / (AspectRatio * 2) - 20
step = 360 / MAXPTS
angle = 0.0
for i in range(MAXPTS):
rads = angle * math.pi / 180.0
p = PTS()
p.x = xcenter + int(math.cos(rads) * radius)
p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
angle += step
points.append(p)
canvas.create_oval(xcenter - radius,ycenter - radius,
xcenter + radius,ycenter + radius)
for i in range(MAXPTS):
for j in range(i,MAXPTS):
canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
canvas.pack()
mainloop()
if __name__ == '__main__':
LineToDemo()
66.输入三个数字,排序
#题目:输入3个数a,b,c,按大小顺序输出
a=[]#初始化空列表
for i in range(3):#for循环,输入三个数字
a.append(input('请输入一个数字:'))
a.sort()#sort()方法直接排序
print(a)
67.输入六维数组,最大的与第一个元素交换,最小的与最后一个元素交换
#题目:输入六维数组,最大的与第一个元素交换,
# 最小的与最后一个元素交换,输出数组(第一个最大,最后一个最小)
a=[]
for i in range(6):
a.append(input('输入一个数字:'))
aa=sorted(a)
for i in range(6):
if a[i]==max(a):#注意是==
a[0],a[i]=a[i],a[0]#最大的与第一个元素(从0开始)交换
for i in range(6):
if a[i]==min(a):
a[len(a)-1],a[i]=a[i],a[len(a)-1]#最后一个元素序号是len(a)-1,因为从0开始
print(a)
68.有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数
#题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,
# 最后 m 个数变成最前面的 m 个数
a=[]
n=eval(input('几位数:'))#eval(input('...'))将输入的字符串转为数字
for i in range(1,n+1):
s=input('请输入第%d位数:'%i)
a.append(s)
print('变换前:%s'%a)
m=eval(input('移动几位:'))#eval(input('...'))将输入的字符串转为数字
b=a[-m:]#后面m个数
c=a[:-m]#除了后面m的其他数
a=b+c#拼接成新列表
print('变换后:%s'%a)
69.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子(除以3的余数为0),问最后留下的是原来第几号的那位
#有n个人围成一圈,顺序排号。
# 从第一个人开始报数(从1到3报数),凡报到3的人退出圈子(除以3的余数为0)
# 问最后留下的是原来第几号的那位。
data=[i+1 for i in range(34)]#[i for i in range(20)]则从0开始;以总人数34为例
print(data)
i=1
while len(data)>1:
if i%3==0:#报到3的人退出圈子
data.pop(0)#删除
else:#不是3,如是1,则转圈圈似的将1放到圈圈的最后
data.insert(len(data),data.pop(0))
#insert()函数 将指定对象插入列表的指定位置;list.insert(index位置, obj指定对象)
#pop() 函数 移除列表中的一个元素(默认最后一个元素),并返回该元素的值。
i+=1
print(data)
70.求字符串的长度
#题目:写一个函数,求一个字符串的长度,
# 在main函数中输入字符串,并输出其长度。
if __name__=='__main__':#注意是==
s=input('请输入字符串:\n')
print('字符串长度为: %d'%len(s))
#个人:
def ss():
s=input('请输入字符串:\n')
print('字符串长度为: %d'%len(s))
ss()
71.编写input()和output()函数输入,输出5个学生的数据记录
#编写input()和output()函数输入,输出5个学生的数据记录
N=3
student=[]
for i in range(5):#五个学生
student.append(['','',[]])
def input_stu(stu):#输入 函数
for i in range(N):
stu[i][0]=input('输入学号:')
stu[i][1]=input('输入姓名:')
for j in range(3):
stu[i][2].append(int(input('输入三科成绩:\n')))
def output_stu(stu):#输出 函数
for i in range(N):
print('%-6s%-10s'%(stu[i][0],stu[i][1]))
#格式化输出 '%-6s:左对齐,占位符6位
for j in range(3):
print('%-8d'%stu[i][2][j])
#%-8d 整数输出,整数的宽度是8位,若不足8位,右边补空格
#函数调用
input_stu(student)
print(student)
output_stu(student)
#总结:先初始化student空列表,再用for循环 循环五次 追加列表;
#定义输入函数(学号姓名和三科成绩)、输出函数(for循环输出+格式化输出)
#最后,调用函数,注意print()
72.创建链表
#题目:创建一个链表
ptr=[]
for i in range(2):
num=int(input('输入一个数字:\n'))
ptr.append(num)
print(ptr)
#方法二
l=[input('输入一个数字:\n') for i in range(2)]
print(l)
#总结:个人认为列表与链表表面上差不多,主要区别是在计算机内部的存储方式不同
#对于创建一个由用户输入的数字组成的列表:
#方法一:初始化空列表-for循环提示输入+append追加列表-输出
#方法二:直接用一条长语句,配合[]与()使用
73.反向输出列表
#题目:反向输出一个链表
ptr=[]
for i in range(3):
num=int(input('输入数字:\n'))
ptr.append(num)
print(ptr)#直接print(ptr.reverse())不行
ptr.reverse()
print(ptr)
#方法二
rl=[int(input('输入一个数字:\n')) for i in range(3)]
rl.reverse()
print(rl)
#总结:逆序输出,只需在输出前用一下.reverse()
#注意:直接print(ptr.reverse())似乎不行,需要分解步骤
74.列表排序及连接
'''题目:列表排序及连接。
程序分析:排序可使用 sort() 方法,连接可以使用 + 号或 extend() 方法。'''
a=[3,2,4]
b=[4,8,6]
a.sort()
print(a)#直接print(a.sort())不行
print(a+b)
a.extend(b)
print(a)
#个人总结:print括号内不能直接使用方法,但可以运算吧
75.小运算
#题目:放松一下,算一道简单的题目
for i in range(5):
n=0
if i!=1:n+=1
if i==3:n+=1
if i==4:n+=1
if i!=4:n+=1
if n==3:print(64+i)
#总结:1、区分==与=;2、if语句的冒号后面可以直接跟语句
#日期
import time
date=time.strftime('%m:%d',time.localtime())#month:day
print(date)
if date=='02-14':# ==
print('情人节')
else:
print('普通日子')
print('哈哈')
76.编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数1/1+1/3+...+1/n
#题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,
# 当输入n为奇数时,调用函数1/1+1/3+...+1/n
def p_even(n):
#i=0
s=0.0
for i in range(2,n+1,2):#步长为2
s+=1.0/i## Python里,整数除整数只能得出整数,所以需要使用 浮点数 1.0
return s
def p_odd(n):
s=0.0
for i in range(1,n+1,2):
s+=1.0/i
return s
if __name__=='__main__':
n=int(input('输入一个数字:\n'))
if n%2 ==0:
sum=p_even(n)
else:
sum=p_odd(n)
print(sum)
#总结:依次定义奇偶情况的函数(注意:for循环、求和s使用+=)
77.循环输出列表
#题目:循环输出列表
s = ["man", "woman", "girl", "boy", "sister"]
for i in range(len(s)):
print(s[i])
#总结:for语句里的i、range括号里的元素 都是数字,
# 若直接print(i)输出的是i数字
78.找到年龄最大的人,并输出
#题目:找到年龄最大的人,并输出
import operator #operator 模块提供了一套与Python的内置运算符对应的高效率函数
person={'zxl':24,'zx':26,'ywp':23}
print(max(person.items(),key=operator.itemgetter(1))[0]) # 获取最大值的 key
#operator.itemgetter(item): 返回一个使用操作数的 __getitem__() 方法从操作数中获取 item 的可调用对象
print(max(person.values()))# 获取最大值
#原方法(先揪出一个,依次与它判断)
person={'zxl':24,'zx':26,'ywp':23}
m='ywp'
for key in person.keys():
if person[m]
79.字符串排序
#题目:字符串排序
l=[]
for i in range(3):
l.append(input('输入字符串:'))
l.sort()
print(l)
#总结3:初始化空列表——for循环提示输入——sort()排序后输出
80.分桃子=.=
'''题目:海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子'''
i=0
j=1
x=0
while (i<5):
x=4*j
for i in range(0,5):
if(x%4 != 0):
break
else:
i+=1
x=(x/4)*5+1
j+=1
print(int(x))
81.809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。
求??代表的两位数,及809*??后的结果。
#题目:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,
# 8*??的结果为两位数,9*??的结果为3位数。
# 求??代表的两位数,及809*??后的结果。
a=809
for i in range(10,100):
b=i*a#等式左边
if b>=1000 and b<=10000 and 8*i<100 and 9*i>=100:#等式右边
print(b,'=800*',i,'+9*',i)
#总结:令a=809,其他关系用数学式子表示出来
#我的分析如下: 假设这个两位数为x, 那它肯定是在range(10,100)中,可用for循环来遍历,
# 综合题目中给定的其他限定条件用if 语句和 and堆叠在一起便可求得这个数
for i in range(10,100):
if (809*i >=1000)and(8*i<100) and (9*i>100) and (809*i==800*i+9*i):#注意==
print('两位数是:{0},结果是:{1}'.format(i,809*i))
82.八进制转换为十进制
#题目:八进制转换为十进制
n=0
p=input('input a octal number:\n') #octal八进制
for i in range(len(p)):
n=n*8+ord(p[i])-ord('0')
print(n)
#总结:关键在于需要知道两种进制之间的转换关系
83.求0—7所能组成的奇数个数
'''题目:求0—7所能组成的奇数个数。
程序分析:
组成1位数是4个。
组成2位数是7*4个。
组成3位数是7*8*4个。
组成4位数是7*8*8*4个……'''
sum=4
s=4#组成1位数是4个
for j in range(2,9):#j=2~8
print(sum)
if j<=2:
s*=7
else:
s*=8
sum+=s
print('sum=%d'%sum)
#总结:首先,看清题目,问的是个数;
#初始化——再根据循环条件判断
84.join()方法连接字符串
#题目:连接字符串
delimiter='+'#分隔符
mylist=['ywp','wtx','zxl']
print(delimiter.join(mylist))#ywp+wtx+zxl
#join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
85.输入一个奇数,然后判断最少几个 9 除于该数的结果为整数
#题目:输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。
#程序分析:999999 / 13 = 76923
b=input('input a number:\n')
a=9
n=1
while (1):#和while(true)是一个意思,就是循环测试一直为真
if a%b==0:
break
else:
a=a*10+9
n=n+1
print('%d个9除以%d为整数'%(n,b))
#总结:提示输入奇数b-初始化a与n-
# while循环作判断,能整除则跳出循环;否则依次用99 999 再除
86.连接字符串
#题目:两个字符串连接
a='ypp'
b='yaa'
print(a+b)#yppyaa
print('+'.join([a,b]))#ypp+yaa
#注意:join()方法括号内应该是列表,
# [a,b]用方括号将其变为列表即可
87.结构体变量传递
#题目:回答结果(结构体变量传递)
class student:
x=0
c=0
def f(stu):
stu.x=20
stu.c='c'
a=student()
a.x=3
a.c='a'
f(a)
print(a.x,a.c)
88.读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
#题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
n=1
while n<=7:#while循环依次读取七个数
a=int(input('input a num:\n'))
while a<1 or a>50:#1—50
a#原代码用了a=int(input('input a num:\n'))
print(a*'*')
n+=1
#总结:先初始化n=1;while循环依次读取七个数(提示输入);
#判断是否在1~50范围内,若是,则用此a*'*'
89.#某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
# 每位数字都加上5,然后用和除以10的余数代替该数字,
# 再将第一位和第四位交换,第二位和第三位交换。
#某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
# 每位数字都加上5,然后用和除以10的余数代替该数字,
# 再将第一位和第四位交换,第二位和第三位交换。
a=int(input('输入四位数:\n'))
aa=[]
aa.append(a%10)
aa.append(a%100/10)
aa.append(a%1000/100)
aa.append(a%1000)
for i in range(4):#四位数
aa[i]+=5#每位数字都加上5
aa[i]%10#用和除以10的余数代替该数字
for i in range(2):
aa[i],aa[3-i]=aa[3-i],aa[i]#将第一位和第四位交换,第二位和第三位交换
for i in range(3,-1,-1):
print(str(aa[i]))
'''
a[0],a[3]=a[3],a[0]#再将第一位和第四位交换
a[1],a[2]=a[2],a[1]#第二位和第三位交换'''
90.列表练习
#题目:列表使用实例
#新建列表
l=[1,'ap',[1,2,3]]
#列表长度
print(len(l))
#到列表结尾
print(l[1:])
#追加元素至列表
l.append('i\'m new here')#\'可以代表'
print(l)#[1, 'ap', [1, 2, 3], "i'm new here"]
#列表最后一个元素
print(l[-1])
#删除某个元素,并返回此被删元素
print(l.pop(0))
print(l)
#多维数组
matrix=[[1,2,3],[4,5,6],[7,8,9]]
print(matrix)#[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1])#[4, 5, 6]
col2=[row[1] for row in matrix]#取每行的第一个元素,构成一列
print(col2)
col2even=[row[1] for row in matrix if row[1]%2 ==0]#判断每行的第一个元素,若偶则构成一列
print(col2even)
91.时间函数基本用法
#题目:时间函数举例1
import time #time.time()返回当前时间的时间戳
print(time.ctime(time.time()))
print(time.asctime(time.localtime(time.time())))
#time ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式,作用相当于 asctime(localtime(secs))
print(time.asctime(time.gmtime(time.time())))#time.gmtime转换为UTC时区(0时区)的struct_time
92.时间函数计时(吧)
#题目:时间函数举例2
import time
start=time.time()
for i in range(3000):
print(i)
end=time.time()
print(end-start)#个人:输出总用时
93.时间函数time.clock()
#题目:时间函数举例3
import time
start=time.clock()#以浮点数计算的秒数返回当前的CPU时间
for i in range(10000):
print(i)
end=time.clock()
print('different is %6.3f'%(end-start))
94.时间函数举例4,一个猜数游戏,判断一个人反应快慢
#题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢
import time
import random
start=time.time()
while True:
play=input('play the game(y/n)?')
if play=='y':
number=random.randint(0,10)#生成随机整数[0.10]
guess=int(input('guess a number:'))
while True:
if number>guess:
guess=int(input('guess a bigger number:'))
elif number
95.字符串日期转换为易读的日期格式
#字符串日期转换为易读的日期格式
from dateutil import parser
dt=parser.parse('8 10 2020 12:00PM')
print(dt)#2020-08-10 12:00:00
96.计算字符串中子串出现的次数
#题目:计算字符串中子串出现的次数
str1=input('输入字符串:\n')
str2=input('输入子串:\n')
ncount=str1.count(str2)
print(ncount)
print(str1.count(str2))#也可直接刚
97.从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个#为止
#题目:从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个#为止
from sys import stdout
filename=input('输入文件名:\n')
fp=open(filename,'w')
ch=input('输入字符串:\n')
while ch!='#':
fp.write(ch)
stdout.write(ch)
ch=input('')
fp.close()
98.从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存
#题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存
fp=open('test.txt','w')
string=input('please input a string:\n')
string=string.upper()
fp.write(string)
fp=open('test.txt','r')
print(fp.read())
fp.close()
#以写入的方式打开文件——输入要写的内容;转为大写——写入
#以读的方式打开文件——读
#关闭文件
99.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中
#题目:有两个磁盘文件A和B,各存放一行字母,
# 要求把这两个文件中的信息合并(按字母顺序排列),
# 输出到一个新文件C中
import string
fp=open('test1.txt')
a=fp.read()
fp.close()
fp=open('test2.txt')
b=fp.read()
fp.close()
fp=open('test3.txt','w')
l=list(a+b)
l.sort()
s=''
s=s.join(l)
fp.write(s)
fp.close()
#方法二:
with open('test1.txt') as f1, open('test2.txt') as f2, open('2.txt', 'w') as f3:
for a in f1:
b = f2.read()
c = list(a + b)
c.sort()
d = ''
d = d.join(c)
f3.write(d)
100.列表转换为字典
#题目:列表转换为字典
i = ['a','b','c']
l = [1,2,3]
b=dict(zip(i,l))
print(b)
#{'a': 1, 'b': 2, 'c': 3}