热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:从C到Python

篇首语:本文由编程笔记#小编为大家整理,主要介绍了从C到Python相关的知识,希望对你有一定的参考价值。 基本输入与输出 输出 C: printf(“Hello World”);

篇首语:本文由编程笔记#小编为大家整理,主要介绍了从C到Python相关的知识,希望对你有一定的参考价值。



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

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

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


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

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

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


  • 1

  • 2

  • 3

  • 4

  • 5

结果为



  • a=1 b=1.000000 str=abc

  • a=1 b=1.0 str=abc

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

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

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

print(‘a={} b={} str={}‘.format(a,b,str),end =‘‘)
print(‘a={} b={} str={}‘.format(a,b,str),end =‘‘)


  • 1

  • 2

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

输入 
C:

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


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

运行结果为:



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

P:

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


  • 1

  • 2

  • 3

  • 4

运行结果为:



  • 请输入三个数据,输入的三个数据将会分别赋值给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
int main()
{
int a=0;
printf("请输入一个数字
");
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;
}


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

p

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


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

运行结果一样



  • 请输入一个数字

  • 23333

  • a>0 条

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

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

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

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

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


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 31

P:

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


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

结果如下



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

    继续猜3 有点小了

    继续猜255 有点大了

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



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

#include
int main()
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",i);
}
return 0;
}


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

P:

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


  • 1

  • 2

  • 3

输出结果如下



  • 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#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射)
    提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射) ... [详细]
  • R语言中向量(Vector)数据类型的元素索引与访问:利用中括号[]和赋值操作符在向量末尾追加数据以扩展其长度
    在R语言中,向量(Vector)数据类型的元素可以通过中括号 `[]` 进行索引和访问。此外,利用中括号和赋值操作符,可以在向量的末尾追加新数据,从而动态地扩展向量的长度。这种方法不仅简洁高效,还能灵活地管理向量中的数据。 ... [详细]
  • 基于试题数据的智能化管理平台采用Java语言进行面向对象编程,旨在构建一个高效的试题信息管理系统。该系统在JDK 6.0和MyEclipse 10.6环境下开发,通过优化试题数据管理和处理流程,提升系统的稳定性和用户体验。平台支持多用户操作,具备强大的数据处理能力和灵活的扩展性,适用于各类教育机构和考试组织。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
author-avatar
活宝贝aaaaaaaaaaaaa
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有