1.给定一个不超过五位的正整数,判断其有几位,依次打印出个位、十位、百位、千位、万位的数字。
i=int(input(':'))
ifi/1000>10:
r=5
elifi/1000>1:
r=4
elifi/100>1:
r=3
elifi/10>1:
r=2
else:
r=1↑↑以上是判断数字的位数,并用r表示。
print(r,end=' ')打印位数,将换行符替换为空格。
p=i
forjinrange(1,r+1):接下来是取每一位的数字,几位数就要取几次,所以确定集合边界。
q=p%10 用q表示每位的数字,从原始数字开始与10取模,这步是关键,也是难点。
p=i//10**j 将数字分别减少一位,以便下一循环取个位数字。
print(q,end='') 打印每位数字,去掉换行符
2.打印一个边长为n的正方形。
n=int(input(":"))
foriinrange(1,n+1,1):
ifi==1:对第一行特殊处理
print(n*"*")
elifi
print("*"+(n-2)*" "+"*")中间行打印首位各一个*号,中间n-2个空格
else:
print(n*"*")对最后一行特殊处理
修改:将第一行和最后一行合进数组。
n=int(input(":"))
foriinrange(1,n+1,1):
ifiin(1,n):
print(n*"*")
else:
print("*"+(n-2)*" "+"*")
3.求100以内所有奇数的和。
sum=0
foriinrange(1,100,2):
sum+=i每次的奇数相加
print(sum)
修改:
sum=0
foriinrange(1,100):
ifi %2!=0:
sum+=i
print(sum)
4.判断学生成绩,90-100为A,89-80为B,79-70为C,69-60为D,60分以下为E。
num=int(input(">>>"))
ifnum<60:
print("E")
else:
ifnum>=90:
print("A")
elifnum>=80:
print("B")
elifnum>=70:
print("C")
5.求1到5的阶乘之和。
sum=0
mul=1阶乘从1开始
foriinrange(1,6,1):
mul*=imul乘以i
sum+=mul求乘积和
print(sum)
6.打印九九乘法表。
最初:
i=1
whilei<10:
forjinrange(1,i+1):
print(i,"*",j,"=",i*j)
i+=1
修改:
i=1
whilei<10:
forjinrange(1,i+1):
print(i,"*",j,"=",i*j,end=' ')
i+=1
print()
修改二:
i=1
whilei<10:
forjinrange(1,i+1):
ifi*j<10:
print(str(j)+'*'+str(i)+'='+str(i*j)+' ',end=' ')
else:
print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')
print()
i+=1
方法二:
foriinrange(1,10):
multables=" "
forjinrange(1,i+1):
multables+=(str(j)+"*"+str(i)+"="+str(j*i)+" ")
print(multables)
foriinrange(1,10):
forjinrange(1,i+1):
ifi*j<10:
print(str(j)+'*'+str(i)+'='+str(i*j)+' ',end=' ')
else:
print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')
print()
7.打印100以内的Febonacci sequence。
a=0
b=1
while True:
c=a+b
ifc<100:
a=b
b=c
else:
break
print(c)
7.1打印位斐波纳契数列第101项。
a=0
b=1
c=0
print(1)第一个是1
foriinrange(1,101):#the 101th febonacci numb
ifc<10000:
c=a+bFebonacci数的特征,上两组数相加
a=b将上一个数的值赋给第一个
b=c将和赋给第二个,然后循环处理。
print(c)
8.求10万以内所有的质数。
foriinrange(1,100001,2):100000以内的奇数,偶数一定能被2整除
forjinrange(2,int(i**0.5)+1):将这个数分别与2到它的开方的数字取模不为零,那么就是质数。
ifi%j==0:
break只要有一次能整除就不在循环。
else:
print(i)
9.打印菱形。
伪代码
m=int(input('请输入你想打印菱形的宽度:'))
n=m//2
foriinrange(n,-1,-1):
ifi == n:
print()
print(i*'0'+(n-i)*'*'+(n-i)*'*'+i*'0')
foriinrange(1,(n+1)):
print(i*'0'+(n-i)*'*'+(n-i)*'*'+i*'0')
9.1
foriinrange(-3,4):
ifi <0:
print(' '*(-i)+(4+i)*'*')
else:
ifi>0:
print(' '*4+(4-i)*'*')
else:
print(7*'*')