python学习日记1

输入输出的注意事项

字符串

字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I'm,空格,OK这6个字符。

如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串看看:

>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\

print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:

>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,可以自己试试:

>>> print('''line1
... line2
... line3''')
line1
line2
line3

布尔值:布尔值可以用andornot运算。not运算是非运算,它是一个单目运算符,把True变成FalseFalse变成True

多组数据处理

例如:

a,b,c = map(int,input().split())
#这种方式输入了3个int型的数字,split()代表以空格隔开。
print(a,b,c)
index = list(map(int,input().split()))
#这种方式可以输入任意个int型的数字,在这里采用列表来存储。
print(index)

输出

 2 6 8
 2 6 8
 1 2 3 4 5 6 7 8 9
 [1, 2, 3, 4, 5, 6, 7, 8, 9]

字符串输出格式化

最后一个常见的问题是如何输出格式化的字符串。我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

像%?这样的叫占位符

常用的有:

占位符 替换内容
%s 字符串
%d 整数
%x 十六进制整数
%f 浮点数

有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%

>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多:

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'

练习: 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位

a = int(input('请输入小明去年成绩:'))
b = int(input('请输入小明今年成绩:'))
se = (b-a)/a*100
print('小明成绩增长了:%.1f%%'%se)

入门语法

运算符

算术运算符

1) 加法运算符‘+’不仅提供加运算,还支持连接字符串的功能。

2) 减法运算符‘-’ 不仅提供减运算,还支持取复操作。

3) 乘法运算符‘*’不仅提供乘运算,还支持列表的倍数添入以及字符串N个的连接。

4) 除法运算符‘/’在使用的过程中,必须要注意分母不能为‘0’,否则会出现语法错误。

举个例子

 test = 'dotcpp'
 tests = '我是dotcpp'
 final = test + tests#这里‘+’连接了test和tests两个字符串
 number = 1000
 newnumber = -number#这里‘-’将number取负
 index = [1,2,3,4]
 index = index*3
 print(final)#‘+’连接后的test+tests
 print(newnumber)#‘-’去负后的number
 print(index)#‘*’倍数添入后的index

输出结果:

dotcpp我是dotcpp
 -1000
 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

 逻辑运算符

  举个例子

   

 a=66
 b=77
 c=88
 if c > b and c > a:#此语句意 如果c大于b 并且c大于a
     print('c是最大的')
 if b > a or b > c:#如果b大于a 或者 b大于c
     print('b不是最小的')
 if not(a > b or a > c):#如果不满足a>b或者 a<c
     print('a是最小的')

输出

 

 c是最大的
 b不是最小的
 a是最小的

 举个例子

      小明的爸妈对小明的零花钱管的很严,小明的学科有y和s,当小明的考试成绩两门同时取得1(分为:1,2,3三个等级,规定级别1级>2级>3级)时会获得10元零花钱,两门同时达到2级未达1时会有5元零花钱,如果有一门为1时则获得3元零花钱,如果有一门在2以下就没有零花钱可得,那么当小明y和s的成绩分别为1和3,或者2和3时,小明分别会有多少零花钱?

代码如下

a = int(input('第一门成绩:'))
b = int(input('第二门成绩:'))
money = 0
if a == 1 and b == 1:
    money += 10
elif a == 2 and b == 2:
    money += 5
elif a == 1 or b == 1:
    money += 3
elif a == 3 or b == 3:
    money = 0
print('小明的零花钱:%d'%money)

控制结构

顺序结构

print('     ','登高','    ','李白')
print('风急天高猿啸哀,渚清沙白鸟飞回。')
print('无边落木萧萧下,不尽长江滚滚来。')
print('万里悲秋常作客,百年多病独登台。')
print('艰难苦恨繁霜鬓,潦倒新停浊酒杯。')

输出结果

     登高      李白
风急天高猿啸哀,渚清沙白鸟飞回。
无边落木萧萧下,不尽长江滚滚来。
万里悲秋常作客,百年多病独登台。
艰难苦恨繁霜鬓,潦倒新停浊酒杯。

选择结构

练习

给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

a = int(input())
if a >= 90:
    money = 'A'
elif a >= 80:
    money = 'B'
elif a >= 70:
    money = 'C'
elif a >= 60 :
        money = 'D'
else :
    money = 'E'
print(money)

  练习2:使用Switch语句编写一个模拟简单计算器的程序。依次输入两个整数和一个字符,并用空格隔开。如果该字  符是一个“+”,则打印和;如果该字符是一个“-”,则打印差;如果该字符是一个“*”,则打印积;如果该字符是“/”,则打印商;如果该字符是一个  “%”,则打印余数。打印结果后输出一个空行。

a,b,c = map(str,input().split())
a = int(a)
b = int(b)
if c =='+':
    print(a+b)
elif c == '-':
    print(a-b)
elif c =='/':
    if b!=0:
        print(a//b)
elif c =='%':
    print(a%b)
else:
    print(a*b)

循环结构-while循环

     1) 条件控制的循环

条件控制的循环是指采用一个表达式(可真可假)来控制循环的次数,我们用while语句来描述条件能控制的循环。

     2) 计数控制的循环

计数控制的循环是根绝指定的次数来进行循环,我们用for语句来编写计算控制的循环。

举个简单的例子

我们要计算100以内所有奇数之和,可以用while循环实现:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

循环结构-for循环

 基本结构

for 迭代变量 in 对象:
     循环体

下面是for循环可迭代的对象类型

 index = [1,2,3,4]#列表
 string = 'abcdef'#字符串
 sets = (1,2,3,4)#集合
 for i in index:
     print(i)
 for j in string:
     print(i)
 for k in sets:
     print(i)

像c语言练习中我们可能会遇到输出十以内整数,百以内整数的和或者值

index = 5
for i in range(index): print("这是第",i,')

在for循环中中离不开range()函数的使用,下面来了解一下range()函数。

range()函数

range(start, stop[, step])

start:计数的第一个值,是包含这个值,如果没有start的时候默认为0。

stop:计数的最后一位,不包含这个值,当range(1,3)的时候,等同于[1,2]是没有3这个数字的,在使用的时候一定要注意这一点。当range()中只有一个数字的时候,像range(3),对应的是[0,1,2]这样一个序列,关于这点大家多多使用就会体会到。

step:为步长,用来控制取数之间的间隔,如果省略则默认为1,如果为2,3等则步长为2,3等。步长为-1时为逆序。

>>>  list(range(10))#范围0-9
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 >>> list(range(1, 11))#范围1-10
 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 >>> list(range(0, 30, 5))范围0-29,步长为5
 [0, 5, 10, 15, 20, 25]
 >>> list(range(0, 10, 3))范围0-9,步长为3
 [0, 3, 6, 9]
 >>> list(range(0, -10, -1))范围0-(-10),步长为-1
 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
 >>> list(range(0))
 []
 >>> list(range(1, 0))
 []

练习1 

求1+2!+3!+4!+…+30!。

科学计数法,保留两位小数。

sum = 0
for i in range(1,31):
    sum1 = 1;
    for j in range(1,i+1):
        sum1 *= j;
    sum = sum + sum1
print("%.2e"%sum)

 练习2

输出一张摄氏一华氏温度转换表,摄氏温度的取值区间是[-1000 C,1500C ],温度间隔50C。要求定义和调用函数 ctof(c),将摄氏温度C转换成华氏温度F,计算公式:

F = 32 + C* 9/5。

for i in range(-100,151,5):
    print('c=%d->f=%d'%(i,int(32+i*9/5)))

循环嵌套练习

练习1

输出九九乘法表

print('  Nine-by-nine Multiplication Table')
print('--------------------------------------')
print('     1   2   3   4   5   6   7   8   9')
print('--------------------------------------')
for i in range(1,10):
    print('',i,end='  ')
    for j in range(1,i+1):
        print('%2d' % (i * j), end='  ')
    print()
print('--------------------------------------')

练习2

求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和

a,b,c = map(int,input().split())
sum1 = 0
sum2 = 0
sum3 = 0.0
for i in range(1,a+1):
    sum1 += i
for i in range(1,b+1):
    sum2 += i*i
for i in range(1,c+1):
    sum3 += 1/i
print("%.2f"%(sum1+sum2+sum3))

 

 

 

posted @ 2021-02-17 15:02  报与桃花一处开  阅读(45)  评论(0)    收藏  举报
返回顶端