python练习

任务1:输出九九乘法表

思路:因为学习过C语言,所以很清楚用嵌套循环,比较难的地方就是怎样格式输出,使输出的排版好看。

原理:嵌套的循环,并加上format()方法的使用

代码及操作图片 :

for i in range(1,10):
   for j in range(1, 1 + i):
      print("{}*{}={}".format(i,j,i*j))
   print('\n')

 

 

for i in range(1,10):
   for j in range(1, 1 + i):
      print("{}*{}={}".format(i,j,i*j),end='')
   print()

遇到的问题:不知道怎么换行,尝试过用   \n   换行,但是收到的效果不如人意。

学到的知识点总结:1、“字符串format()方法的基本使用格式:"模版字符串".format(逗号分隔的参数),例如:

                                                                   >>> "{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
                                                                   'hello world'
 
                                                                   >>> "{0} {1}".format("hello", "world")  # 设置指定位置
                                                                   'hello world'
 
                                                                    >>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
                                                                    'world hello world'

                                                                    >>>"{}是一位{}。".format("我","学生")

                                                                    '我是一位学生'

                                      另外str.format()格式化数字:>>> print("{:.2f}".format(3.1415926));
                                                                                      3.14

                               2、(这一点不清楚):end为什么 这样用在此处

任务2:1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

思路:在脑海里有纯粹的数学方法(排列组合的方式),但是就是不知道怎么用一种语言代码把它表示出来。只能百度借鉴了别人的思维。

原理:同样的嵌套的循环语句,来依次安排百位,十位,个位上的数,(习惯上从高位往低位排列),还有利用条件语句进行判断个、十、百位上的数不重复。

代码及操作图片:(其中输出语句与判断语句有不同写法)

 

for i in range(1,5):
   for j in range(1,5):
      for k in range(1,5):
         if i!=j!=k:
            print("{}{}{}".format(i,j,k),end='   ')

(沿用上次新学的)

for i in range(1,5):
   for j in range(1,5):
      for k in range(1,5):
         if i!=j!=k:
            print("%d%d%d"%(i,j,k))

对于     print("%d%d%d"%(i,j,k))      这一句(网上看到的),我其实并不知道第四个百分号的作用与用法(没有查到我想要的相应资料)(在此处有疑问)。

 

m=0
for i in range(1,5):
   for j in range(1,5):
      for k in range(1,5):
         if (i!=j)and(j!=k)and(i!=k):
            m+=1
            print("%d%d%d"%(i,j,k),end=' ')
            if m%4==0:
               print('')

遇到的问题:输出排版依旧不会,(模仿中成长吧!)

                    刚开始,也不知道怎么把三个数组成一个数,其中出现了这些情况:

 

 

任务3:用 * 号输出字母C的图案

思维路程:看到此题目时,首先想到的是C语言中的菱形打印(如下图), 但是我写不出来C的图案绘制代码,因为我觉得菱形打印有规律可循,但是C就只是简单地输出。

 #include<stdio.h>
void main()
{
    int i,j;
    for(i=0;i<4;i++)
    {
        for(j=0;j<4-i;j++)
            printf(" ");
        for(j=0;j<=i*2;j++)
            printf("*");
        printf("\n");
    }
    for(i=0;i<3;i++)
    {
        for(j=0;j<2+i;j++)
            printf(" ");
        for(j=0;j<=4-2*i;j++)
            printf("*");
        printf("\n");
    }

原理:输出函数print()的应用。

 

补充:

                       后来,无意中看到 资料书上的python蟒蛇绘制,想到可以用 画笔绘制出来吧,于是看了  绘制图形的turtle库  ,学到了一些知识。

 
import turtle
turtle.setup(650,350,200,200)        #turtle.setup()函数相当于创建一个方向坐标系
turtle.penup()
turtle.fd(50)                     #turtle.fd()函数控制画笔的行进距离,正负表示前进方向
turtle.pendown()
turtle.pensize(25)                  #turtle.pensize()函数用来规定画笔的尺寸
turtle.pencolor("purple")           #turtle.pencolor()函数用来设置画笔颜色
turtle.seth(250)                    #turtle.seth(to_angle)函数用来画笔绘制方向,角度是绝对方向角度值
turtle.circle(80,180)

(然而还是失败了,画不出C的上半部分)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值