python3.6初级编程

时间:2021-01-22 20:39:53

#输出9*9乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('%d * %d = %d ' % (i, j, i*j), end='')
    print()

#暂停一秒输出

import time

myD = {1:'a', 2:'b'}
for key, value in dict.items(myD):
    print(key, value)
    time.sleep(1)

#暂停一秒输出,并格式化当前时间
import time
 
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

# 暂停一秒
time.sleep(1)

print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

#判断101-200之间有多少个素数,并输出所有素数。
l = []
for i in range(101,201):
    for j in range(2, int(i/2)):
        if i%j==0 :
            break
    else: #当迭代的对象迭代完并为空时,才会执行else操作,break掉时并不会执行else
        l.append(i)
    
print(l)
print(len(l))

#打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
for i in range(100,1000):
    a = i//100
    b = i//10%10 #这个地方如果使用/,并不会返回整数部分,而是原始值
    c = i%10
    if i==pow(a,3)+pow(b,3)+pow(c,3):
        print(i)

#将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
x = int(input("是否进入循环?是:1, 否:0\n"));
while(x):
    n = int(input("请输入一个正整数:"));
    print ("%d = " % n , end = '');
    while n not in [1]:
        for index in range(2, n+1):
            if n % index == 0:
                n = int(n/index);
                if n == 1:
                    print("%d " % index , end = '');
                else:
                    print("%d * " % index , end = '')
                break;
    print()
    x = int(input("是否进入循环?是:1, 否:0\n"));
print("end!")

'''利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,
60-89分之间的用B表示,60分以下的用C表示。
'''

flag = int(input('if into circle yes:1 no:0\n'))
while(flag):
    score = int(input('please input a score:\n'))
    if score>=90:
        print('A')
    elif score>=60:
        print('B')
    else:
        print('C')
    flag = int(input('if into circle yes:1 no:0\n'))
print('end!')

#输出指定格式的日期。
import time
import datetime

print('use datatime')
print(time.time())
print(time.localtime())
print(time.asctime())
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) 

print('use datatime')
print(datetime.date.today()) 
print(datetime.date.today().strftime('%d/%m/%Y'))
print(datetime.date(1941, 1, 5))

#输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
a = input('请输入一串字符:')
英文 = 0
空格= 0
数字= 0
其他= 0
for i in a:
    if i.isalpha():
        英文 += 1
    elif i.isspace():
        空格 += 1
    elif i.isnumeric():
        数字 += 1
    else:
        其他 += 1
print('英文 = %s,空格 = %s,数字 = %s,其他 = %s' % (英文,空格,数字,其他))

#一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
for i in range(2,1001):
    sum = 0
    for j in range(1,i):
        if i%j == 0:
            sum += j
    if sum==i:
        print(i)

#一球从100米高度*落下,每次落地后反
#跳回原高度的一半;再落下,求它在第10次落地时,
#共经过多少米?第10次反弹多高?

hei = 100
time = 10
height = []
for i in range(2,11):
    hei /= 2
    height.append(hei)

print('第10次反弹高度:%s' % min(height))
print('第十次落地总共经历了%s米' % (sum(height)*2+100))

#打印出菱形
for i in range(1, 5):
    print(' ' * (4 - i), end='')#''*(4-i):重复输出多少次
    for j in range(1, 2 * i):
        print('*', end='')
    print()
for i in range(3, 0, -1):
    print(' ' * (4 - i), end='')
    for j in range(1, 2 * i):
        print('*', end='')
    print()

#有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
sum = 0
a, b = 1, 2
for i in range(1, 21):
    sum += b / a
    a, b = b, a + b
print(sum)

#一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
'''
将列表a倒序处理,如果a=[1,2,3],
则a[::-1]=[3,2,1]。前两个冒号表示处理整个列表,
也可以写上参数表示处理列表的一部分,例如a[2:0:-1]=[3,2]
,第一个参数表示起始点包括起始点,第二个参数表示结束点但不包括结束点
。最后一个参数如果为负的话,需要保证第一个参数大于第二个参数,表示依次递减逆序
,否则会输出空列表。
'''
a = input("输入一串数字: ")
b = a[::-1]
if a == b:
    print("%s 是回文"% a)
else:
    print("%s 不是回文"% a)

#按逗号分隔列表
l = [1,2,3,4,5,6,7];
k = 1;
for i in l:
    print(i,end= ('' if (k == len(l)) else ','));
    k += 1;

#按逗号分隔列表
L = [1,2,3,4,5]
s1 = ','.join(str(n) for n in L)
print(s1)

'''
通俗的理解__name__ == '__main__':
假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');
在你自己眼中,你是你自己(__name__ == '__main__')。

if __name__ == '__main__'的意思是:
当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
'''

def hello_world():
    print('hello world')
 
def three_hellos():
    for i in range(3):
        hello_world()
if __name__ == '__main__':
    three_hellos()

#按相反的顺序输出列表的值。
a = ['a', 'b', 'c']
for i in a[::-1]:
    print(i,end='')

#求100之内的素数。
#coding=utf8

l = []
for i in range(2,101):
    for j in range(2,i):
        if i%j == 0:
            break
    else: l.append(i)
print(l)

#模仿静态变量的用法。
class Static:
    StaticVar = 5
    def varfunc(self):
        self.StaticVar += 1
        print(self.StaticVar)

print(Static.StaticVar)
a = Static()
for i in range(3):
    a.varfunc()

#两个变量值互换。
a,b = 'a','b'
print('a = %s; b = %s' % (a,b))
a,b = b,a
print('a = %s; b = %s' % (a,b))

#使用lambda来创建匿名函数。
h=lambda x,y:x//y
x,y=eval(input('请输入两个数字,并以逗号分隔:'))
print(h(x,y))

#输出1-99间的随机数
import random

print(random.choice([x for x in range(1,101)]))
#输出0-1之间的随机数
print(random.random())
#输出10-20之间的随机数
print(random.uniform(10,21))

#0&0=0; 0&1=0; 1&0=0; 1&1=1。
#0|0=0; 0|1=1; 1|0=1; 1|1=1
#0^0=0; 0^1=1; 1^0=1; 1^1=0
#~0=1; ~1=0

#用turtle画图
import turtle

def drawline(n):
    t=turtle.Pen()
    t.color(0.3,0.8,0.6)  #设置颜色,在0--1之间
    t.begin_fill()   #开始填充颜色
    for i in range(n): #任意边形
        t.forward(50)
        t.left(360/n)
    t.end_fill()    #结束填充颜色
    turtle.done()  #不加这个画完图后会自动关闭
#绘制6边型
drawline(6)

#有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
from collections import deque

m = 3
a = [1,2,3,4,5,6,7]   # 7 个数
f = deque(a) #双端队列
f.rotate(3)
print(list(f))

#有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
#凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

data = [i+1 for i in range(34)]
print(data)
i = 1 
while len(data) > 1:
    if i % 3 == 0:
        data.pop(0)
        print(data)
    else:
        data.insert(len(data),data.pop(0))
    i += 1
print(data)

#创建一个链表。
l=[input("please input a number:\n") for i in range(5)]
print(l)

#找到年龄最大的人,并输出。
person = {"li":18,"wang":50,"zhang":20,"sun":22}
def find_max(dict):
    max_age = 0
    for key,value in dict.items():
        if value>max_age:
            max_age = value
            name = key
    print(name)
    print(max_age)
find_max(person)

#连接字符串
d = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print(d.join(mylist))

#或者

if __name__ == '__main__':
    str = ['qerqwe','dsdd','wrwr']
    strjoin = ''
    strjoin = strjoin.join(str)
    print(strjoin)

#从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
filename = input('input a filename:\n')
filename = 'e:/'+filename
fp = open(filename,'w+')
ch = ''
while '#' not in ch:
    fp.write(ch)
    ch = input('input a content:\n')
fp.close()

#从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。

'''
structure is:
with expression [as variable]:
with-block
'''

import sys

str = input('请输入一个字符串:\n')
with open('e:/test1.txt','w+') as f:
    f.write(str.upper())
    f.close()

#列表转换为字典。
i = ['a','b','c']
l = [1,2,3]
#zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
b=dict(zip(i,l))
print(b)