Python学习, 学习笔记

Python——另外几个可爱的小程序

一周没有学习Python,发现有点忘记了,看博客很快就回忆起来学的少的可怜的知识了。所以博客是个好东西,帮助我们建立更茁壮的突触。

小程序:摄氏度的转换:

写程序的时候总有报错:“TypeError: cannot concatenate ‘str’ and ‘float’ objects”。因为这个Python2呀比较轴,它认为“+”的意义要么就是加减乘除里的加号,要么就是相同变量的连接。所以,

number=raw_input(number)
print("number="+number)

这样的语句看起来对于java,c什么的逻辑是非常正常,但是对于Python2就不对了,number是个数字(可能是int或者float)你怎么能和字符串连在一起呢?解决方法就是数据类型转换啦。

要求:Write a function called celsius(f) that could translate degrees fahrenheit into degrees celsius.

code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
f = raw_input("Please input the degrees fahrenheit")
t = (float(f) - 32.0 ) / 1.8
print("The degrees celsius is " + str(t))

输出:

C:\Users\Administrator\Desktop>py 3.1.py
Please input the degrees fahrenheit: 35.6
The degrees celsius is 2.0

小程序:比较函数cmp()

要求:

Write a function called maximum(x,y) that returns the biggest of the two parameters x and y.
Test this function with a call like maximum("hej","ha"). What's the result?

问题想当简单,不过题目有点歧义,是两个数字的比较?还是字符串的比较?不过还是有点收获

  • 函数实现需要写在调用前面
  • 函数cmp(x,y)是按照字典排序比较大小的
  • 直接比较if(x>y)也是按照字典序排序的
  • 如果想要比较数字,用if((int)x>(int)y)就好

code:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
def maximum1(x,y):   #字符串比较
    if(cmp(x,y)):   #或者也可以直接比较x>y
        return str(y)
    else:
        return str(x)
def maximum2(x,y):  #数字比较
if(int(x)>int(y)):
    return str(x)
else:
    return str(y)

x=raw_input("Input the first number: ")
y=raw_input("Input the sencond number: ")
print("The biggest parameter is "+ maximum1(x,y))
print("The biggest parameter is "+ maximum2(x,y)) #这个如果输入的是字符串,会报错

输出:

C:\Users\Administrator\Desktop>py 4.1.py
Input the first parameter: hej
Input the second parameter: ha
The biggest number is ha

但是如果用maximum1输出两个数字:

C:\Users\Administrator\Desktop>py 4.1.py
Input the first parameter: 473
Input the second parameter: 72
The biggest parameter is 72

不要问我为什么,因为字典排序呀~
如果用muximum2输出这两个数字,结果就不一样了

The biggest number is 473

小程序:使用数组list

在python中,数组的实现,是用list的,可以在网上轻松的找到各种list的操作方法。就不说啦。

要求:

Write a function printlarge(v) that will print out all the elements within the array v, which is larger than 1 000 000.

code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
num=1
v=list()
while(num!="0"):
    num=raw_input("input the number in array(input 0 if you want to finish)")
    v.append(num)
print("output of the array: ")
print(v)

result:

C:\Users\Administrator\Desktop>py 6.1.py
input the number in array(input 0 if you want to finish)1000000
input the number in array(input 0 if you want to finish)1000000
input the number in array(input 0 if you want to finish)2000000
input the number in array(input 0 if you want to finish)0
output of the array:
['1000000', '1000000', '2000000', '0']

这些都是非常简单的操作,写起来还挺麻烦的,不过以后忘了再回忆起来肯定有帮助的吧~去医务室看了脚,绑了很可爱的绷带,然后!明天要见老师!!!

Be the First to comment.

Leave a Comment

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据