python学习日记1
输入输出的注意事项
字符串
字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这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
布尔值:布尔值可以用and、or和not运算。not运算是非运算,它是一个单目运算符,把True变成False,False变成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))

浙公网安备 33010602011771号