admin管理员组

文章数量:1794759

python冲击二级——趣味编程,主动犯错吧,

python冲击二级——趣味编程,主动犯错吧,

习武之人,首先要学会挨打,这样才会知道如何防守,如何避免受到严重的伤害。 所以今天我们第一课,是主动犯错,来看看解释器会告诉我们什么。

>>> print(“hello world”) File "<stdin>", line 1 print(“hello world”) ^ SyntaxError: invalid character in identifier

看上去没什么特别啊,怎么会出错? SyntaxError:标识符中的字符无效 原因是我使用了中文的引号,导致出现了无效字符错误。

>>> a=100 >>> b="100" >>> a-b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'int' and 'str'

a变量为int整型,b变量为str字符串类型,无法进行运算,导致错误。 TypeError:-:“int”和“str”的操作数类型不受支持 (英文不好可以百度翻译啊,我一直在用哈哈 )

>>> a=100 >>> b=99.9 >>> a-b 0.09999999999999432 >>>

我看到了什么,难道这是python的bug!!!然而并不是,这是所有编程语言都会产生的问题。 1.1 和 2.2 这样的数字在二进制浮点中没有精确的表示。最终用户通常不希望 1.1 + 2.2 如二进制浮点数表示那样被显示为 3.3000000000000003。 所以使用浮点数计算的时候一定要注意,保留合理位数,或者用python基本库的decimal模块,进行更精确的计算。

大多数情况,上述的错误是我们,经常都会犯的,当然我们犯的错越多,就会越强大!! 让我们再看一看一些特别的操作

>>> a="你好" >>> b="张三" >>> c=a+b #字符串相加,俗称字符串拼接 >>> c '你好张三' >>> a*3 #相当于拼接了3次 '你好你好你好' >>> a '你好' >>> a-b #减法不行哦,又是熟悉的错误。 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'str' and 'str'

是时候来编写一个简单的小程序,来检验我们的成果了:

题目:打印一条欢迎信,提示你输入名字,然后打印问候信 这个时候就需要我们的idle上场了,还记得idle怎么打开吗?去开始菜单里面找到它。

单击file-newfile 现在我们就可以开心的输入代码了。 写入以下代码,我建议大家自己手打。

print("*"*10,"欢迎进入我的第一个程序","*"*10,) print("请告诉我你的名字") name = input("请输入名字:") print("你叫",name,“这真是一个好名字啊”) print("你的年龄多大呢?") age = input("输入年龄:") print("如果你还没过生日,今年你就要",age+1,"岁了")

之后我们点击file-save

大家最好保存到桌面可以直观的看见文件,文件名字你可以自己取,然后点击save,之后你就会发现桌面多了一个,study1.py文件,没错python文件的后缀名就是py,其实这就是一个文本文件,大家有嗯记事本也可以打开。我们之后都会用idle的file-open打开,就可以直接编辑。

文件写好了如何运行呢???

直接按F5,或者点击 run–run module 如果你吵了我的代码,对不起,请找找错误吧哈哈哈。大家可以每一个菜单都看看,研究研究这个idle都有什么选项,什么也别怕,弄它。

以下是该程序正确的输出

********** 欢迎进入我的第一个程序 ********** 请告诉我你的名字 请输入名字:白加黑 你叫 白加黑 这真是一个好名字啊 你的年龄多大呢? 输入年龄:180 如果你还没过生日,今年你就要 181 岁了 >>>

正确代码如下,我相信标点的错误都是好发现的,但最后一行的错误,相信新手一定找不出。

print("*"*10,"欢迎进入我的第一个程序","*"*10,) print("请告诉我你的名字") name = input("请输入名字:") print("你叫",name,"这真是一个好名字啊") print("你的年龄多大呢?") age = input("输入年龄:") print("如果你还没过生日,今年你就要",int(age)+1,"岁了")

因为input接收进来的值,永远都是字符串,如果想进行四则运算,我们需要转换成整型,也就是int类型,如何转换,看以下例子:

age = input("你的年龄是:") 你的年龄是:100 >>> a Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> a NameError: name 'a' is not defined >>> age '100' >>> type(age)#看看age的类型 <class 'str'> >>> b=int(age)#字符串转为了整型 >>> b 100 >>> type(b) #看看b的类型 <class 'int'>

看到上面那个错误了吗?应为a这个变量,我并没有定义,所以调用的时候出现没有找到这个变量。

>>> int("100") 100 >>> int("01") 1 >>> int("0.001") Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> int("0.001") ValueError: invalid literal for int() with base 10: '0.001' >>> float("0.001") 0.001

又出现了一个错误,因为字符串内部是一个浮点类型的表示,无法用int转换,必须用float转换。

>>> float("0.001") 0.001 >>> int(1.112) 1 >>> float(1) 1.0 >>> str(float(1)) '1.0' >>> int(str(1000)) 1000 >>>

整型和浮点型是可以相互转换的,大家在编写程序的时候,时刻别忘记了类型,这很重要,避免出错。放开你的想象力,去试一试吧。

我们再来看一下print这个函数

>>> print("你好,我是白月光") 你好,我是白月光 >>> print("你好",",我是","白月光")#结果每个逗号之后都有一个空格 你好 ,我是 白月光 >>> print("你好",",我是","白月光",sep='')#设置sep为空字符串,就一样了 你好,我是白月光 >>>print("你好",",我是","白月光",sep='×××')#这样是不是明白了 你好×××,我是×××白月光

print的sep参数,控制每一个参数之间的分隔符,默认是一个空格。

>>> print("你好",sep="hello") 你好 >>> print("你好",“1234”,sep="hello") SyntaxError: invalid character in identifier >>> print("你好","1234",sep="hello") 你好hello1234

可见只有一个参数的时候,并不会打印sep,错误总是存在的,只要你知道错在了哪里。

在idle中输入如下代码,然后按f5运行

print("hahaha",end='') print("我是无敌的")

结果:

hahaha我是无敌的 >>>

不是应该换行吗?怎么打印到了一起了,这就是end参数,它的默认值是’\\n’,也就是换行符号,如果我们把它设置为空,就不会换行了,当然我们也可以把它设置成任意字符串。

介绍个新的函数len,你可以向 len()函数传递一个字符串(或包含字符串的变量),然后该函数求值为一个整型值,即字符串中字符的个数。

>>> a="1234567" >>> len(a) 7 >>> b="你好啊" >>> a=len(b) >>> a 3 >>> tpye(a) Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> tpye(a) NameError: name 'tpye' is not defined >>> type(a) <class 'int'>

你可以用一个计算器来计算表达式,或在文本处理器中输入字符串连接,甚至可以通过复制粘贴文本,很容易地实现字符串复制。 但是表达式以及组成它们的值(操作符、变量和函数调用),才是构成程序的基本构建块。一旦你知道如何处理这些元素,就能够用 Python 操作大量的数据。 最好是记住不同类型的操作符(+、-、、/、//、%和**是数学操作符,+和是字符串操作符),以及 3 种数据类型(整型、浮点型和字符串)。 我们还介绍了几个不同的函数。print()和 input()函数处理简单的文本输出(到屏幕)和输入(通过键盘)。 len()函数接受一个字符串,并求值为该字符串中字符的数目。 在下一篇中,你将学习如何告诉 Python 根据它拥有的值,明智地决定什么代码要运行,什么代码要跳过,什么代码要重复。这称为“控制流”,它让你编写程序来做出明智的决定。

课后习题:

本文标签: 趣味主动Python