从C到Python,,基本输入与输出输出C


基本输入与输出
输出
C: printf(“Hello World\n”);
P: print(“Hello World\n”)

简单的字符串输出对于printf()/print()函数来说,C和Python差别貌似不大,细心的读者可能会发现,在Python中一条语句后面并没有分号,事实确实如此,在Python中,一般一行一条语句,如果写两条,你需要加上 ; 隔开,但一般没有人会去那么做,想一想在C中有多少次都是因为忘添分号导致编译出错的,所以在Python中,忘了分号吧。
但是复杂一点的格式输出,比如打印一定精度的数字或者字符串两者就不一样了
C:

#include<stdio.h>int main(){int a=1;float b =1.0;char str[10]="abc";printf("a=%d\tb=%.3f\tstr=%s",a,b,str) ;return 0;}
123456789

结果应该为a=1 b=1.000 str=abc
P:

b = 1.0str="abc"print ("a=%d\tb=%f\tstr=%s" % (a, b,str))print(‘a={}\tb={}\tstr={}‘.format(a, b,str))
12345

结果为

a=1 b=1.000000 str=abca=1 b=1.0 str=abc

Python中也有类似C语言中的格式输出,就是把逗号换成%,把变量用圆括号包围起来。除此之外,还有format方法。

Python中format方法所做的事情便是将每个参数值替换至格式所在的位置。在Python3中数有四种类型:int、float、bool、complex,int表示为长整型,没有python2 中的 Long,也没有char类型。

正如你所看到的那样,Python中的变量不需要声明,但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。这一点与c不同,其他诸如转义序列\n\t…都差不多。还有一点,在Python中print()函数 默认是以换行符作为结束值的,C语言中printf()函数结束需要手动换行。如果在Python中不想换行,可以在说完正事后添上end = “ “,注意用逗号隔开就行。如:

print(‘a={}\tb={}\tstr={}‘.format(a,b,str),end =‘‘)print(‘a={}\tb={}\tstr={}‘.format(a,b,str),end =‘‘)
12

结果为 a=1 b=1.0 str=abca=1 b=1.0 str=abc

输入
C:

#include<stdio.h>int main() {     int a=0;    float b=0;     char str[10];     printf("请输入三个数据,输入的三个数据将会分别赋值给a,b,str,              用逗号隔开\n");    scanf( "%d%f%s",&a,&b,str);     printf( "%d\t%f\t%s\t ",a,b,str);     return 0; }
1234567891011121314

运行结果为:

请输入三个数据,输入的三个数据将会分别赋值给a,b,str, 用逗号隔开 输入 :1 2.0 gg 输出 : 1 2.000000 gg

P:

a,b,str=input("请输入三个数据,输入的三个数据将会分别赋值给a,b,str,              用逗号隔开\n").split()print(‘a={}\tb={}\tstr={}‘.format(a,b,str),end =‘ ‘)
1234

运行结果为:

请输入三个数据,输入的三个数据将会分别赋值给a,b,str, 用逗号隔开输入 :test1 test2.0 22输出: a=test1 b=test2.0 str=22

input()函数用于从用户那里获得一些文本,有一个用来提示用户输入信息的字符串参数,在C语言中,要想实现同样的功能,需要printf()。当然input只能接受一个值,要想输入多个,用 input().split(),前面就可以加任意多的数据了。

值得注意的是:input返回的是字符串,虽然看着是数字,但其实是字符串,需要int(input())来进行转化,如果输入的不是数字而是字符串,这个转换就会报错,在与用户输入打交道的地方,要注意检查类型是否匹配,可以用Try语句,后面再说。

控制流语句
在Python中有三种控制流语 句—— if for和while,下面比较其与C语言中的区别
If
C

#include <stdio.h> int main() {     int a=0;    printf("请输入一个数字\n");    scanf("%d",&a);    if(a==0)    {        printf("a =0");      }    else if(a>0)    {        printf("a>0");          }    else if(a<0)    {        printf("a>0");        }    else        printf("a不是数字 ");    return 0; }
1234567891011121314151617181920212223

p

a=int(input("请输入一个数字\n"))if a==0:    print("a =0") elif a>0:    print("a>0")    else:   print("a<0 ")
12345678910

运行结果一样

请输入一个数字23333a>0 条

C中:条件语句后面要用括号包含条件,把条件成立时的语句块用花括弧{}围起来,Python中 if 语句后直接接条件再添加冒号,条件成立时执行的语句块保持缩进一致,一般缩进四个空格或者一个制表符。

但是一定要记住,Python使用缩进级别来告诉编译器哪些语句分别属于哪个 块。如果同一语句块中缩进不一致,程序结果可能和预想的结果不一样甚至直接报错,这便是没有用花括弧{}所带来的弊端。

至于else if()简写成elif, Python中不存在switch语句。你可以通过使用if..elif..else语句来实现同样的事 情。

while
while语句在条件为真的前提下重复执行某块语句
C:

#include <stdio.h> int main() {     int a=233,b;    bool flag=1;    printf("猜猜a等于多少,随便输入一个数字\n");    scanf("%d",&b);    while(flag)     {        if(a==b)        {            printf("猜对了\n");                 flag=0;        }        else         {           if(a>b)            {                printf("有点小了\n");                   }            else            {               printf("有点大了\n");                           }           printf("继续猜: ");               scanf("%d",&b);        }    }    return 0; }
12345678910111213141516171819202122232425262728293031

P:

a=233flag=1b=int(input("猜猜a等于多少,随便输入一个数字\n"))while flag:    if a==b:        print("猜对了")             flag=0    else:        if a>b:            print("有点小了")          else:            print("有点大了")        b=int(input("继续猜"))   else:                   print(‘游戏结束.‘)
12345678910111213141516

结果如下

猜猜a等于多少, 随便输入一个数字 2 有点小了

继续猜3 有点小了

继续猜255 有点大了

继续猜233 猜对了 游戏结束.

while在C和Python中,区别在于判断条件的括号()换成冒号:,花括弧{}换成缩进就行了,另外,Python中while可以和else配合使用,else代码块在while 循环的条件变为False时开始执行,也可以不用else语句。其他用法差异不大。
for
C:

#include <stdio.h> int main() {     int i;    for(i=0;i<10;i++)     {        printf("%d\t",i);    }    return 0; }
12345678910

P:

for i in range(0,10,1):    print(i,"\t",end="")
123

输出结果如下

0 1 2 3 4 5 6 7 8 9

Range()函数的第一个参数指定了起始位置,第二个参数限定了范围,第三个参数时步长。range()每次会生成一个数字.

In 运算符 如果在指定的序列中找到值返回 True,否则返回 False,因此也可以用在其他条件语句中,测试实例中包含了一系列的成员,包括字符串,列表或元组。至于什么是列表或这元组,后面介绍。

Python 中的for和与C中的for同Python中的while与C中的while相差不多,都是把C中的括弧()转为冒号:,把循环体的{}换为一致的缩进即可。

喜欢的朋友可以加QQ群,群内有免费资料供大家一起交流学习技术分享图片

从C到Python

评论关闭