2018年6月27日笔记
python流程控制
1.python流程控制语句结构
4种流程控制语句结构:
if
if -- else
if -- elif --else
if多条件
2.程序结构
3种程序结构:顺序结构、选择结构、循环结构
3.if语句示例
需求:输入学员分数,划分学员等级(90分以上A,80-89为B,60-79为C,60分以下E)
if __name__ == "__main__":
x = int(input("请输入学员分数:"))
if x>100 or x < 0:
print("你输入的数超过实际范围")
elif x >= 90:
print('A')
elif x >= 80:
print('B')
elif x >= 60:
print('C')
else:
print('E')
注意:1.python中用elif代替了else if
2.每个条件后面要使用冒号:
3.使用缩进划分语句块,相同缩进数的语句在一起组成一个语句块。
4.在python中没有switch-case语句
4.if语句练习
1.输入一个年份,判断是否为闰年
if __name__ == "__main__":
x = int(input("请输入年份:"))
if x%400 == 0 or (x%4 == 0 and x%100 != 0):
print("此年份是闰年")
else:
print("此年份不是闰年")
2.输入一个数字判断是否是水仙花数,水仙花数的定义:一个三位数的个位数的3次方加十位数的3次方加百位数的3次方等于这个数自身,例如153=13+53+3^3,153是水仙花数
if __name__ == "__main__":
x = int(input("请输入一个三位数:"))
num1 = x//100
num2 = x//10%10
num3 = x%10
if x == num1 ** 3 + num2 ** 3 + num3 ** 3:
print("这个数是水仙花数")
else:
print("这个数不是水仙花数")
3.实现用户输入用户名和密码,当用户名为 rongda且密码为123时,显示登陆成功,否则登陆失败
if __name__ == "__main__":
userName = input("请输入用户名:")
password = input("请输入密码:")
if userName == 'rongda' and password == '123':
print("登录成功")
else:
print("登录失败")
下午上课前分享
字符串函数的使用
import string
if __name__ == "__main__":
print(string.digits)
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase)
运行上面一段代码的结果如下:
0123456789
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
循环结构
1.python循环种类
python中有两个循环,第一种for循环,第二种while循环。他们的相同点在于都能循环做一件重复的事情,不同点在于for循环在可迭代的序列被穷尽时停止,while则是在条件不成立的时候停止。
2.while循环语句
while语句包括两部分,判断语句和执行语句。
判断条件可以是任何表达式,任何非零、或者非空的值均为true。当判断条件为假时,循环结束。
(1)打印出0-9的数字
if __name__ == "__main__":
count = 0
while count < 10:
print("这个数字是:",count)
count += 1
print("输出成功")
(2)打印出1+2+3+...+100的和
if __name__ == "__main__":
a = 1
s = 0
while a <= 100:
s += a
a += 1
print(s)
上面一段代码的运行结果是:
5050
用一行代码完成求和功能
print(sum(range(1,101)))
(3)输出1-100以内的所有奇数
if __name__ == "__main__":
a = 1
while a <= 100:
if a % 2 == 1:
print(a)
a += 1
3.for循环语句
python中,for循环可以遍历任何序列的项目,如一个列表或者一个字符串
示例:通过for循环遍历"Hello world!"
if __name__ == "__main__":
for every_letter in "Hello_world!":
print(every_letter,end=' ')
上面一段代码的运行结果是
H e l l o _ w o r l d !
for循环作为编程语言中最强力的特性之一,能够帮助我们做出很多重复性的事情。比如批量命名、批量操作等。
4.for循环遍历容器
1.通过for循环遍历列表
if __name__ == '__main__':
lt = ['apple','banana','orange']
for i in lt:
print(i)
上面一段代码的运行结果如下:
apple
banana
orange
借助range函数遍历并实现一段代码的相同功能
if __name__ == '__main__':
lt = ['apple','banana','orange']
for i in range(len(lt)):
print(lt[i])
2.通过for循环遍历元组
if __name__ == '__main__':
t = ('清华','北大青鸟','蓝翔','新东方')
for i in t:
print(i)
上面一段代码的运行结果如下:
清华
北大青鸟
蓝翔
新东方
3.通过for循环遍历字典
if __name__ == '__main__':
d = {'python':'perfect','java':'good','php':'just so so'}
for k in d:
print(k)
上面一段代码的运行结果为:
python
java
php
4.通过for循环遍历字典
下面一段代码的难点主要是items()方法的利用,它的返回值类型是list,list中的每一个元素类型是tuple。
if __name__ == '__main__':
d = {'python':'perfect','java':'good','php':'just so so'}
for k, v in d.items():
print(k, v)
上面一段代码的运行结果如下:
python perfect
java good
php just so so
while练习
我国现有13亿人口,设每年增加0.8%,编写程序,计算多少年后达到26亿?
if __name__ == '__main__':
a = 13
count = 0
while a < 26:
count += 1
a *= 1 + 0.008
print(count)
作业
1.求1-100所有数的和
if __name__ == "__main__":
a = 1
s = 0
while a <= 100:
s += a
a += 1
print(s)
2.输出1-100内的所有奇数
if __name__ == "__main__":
a = 1
while a <= 100:
if a % 2 == 1:
print(a)
a += 1
3.输出1-100内的所有偶数
if __name__ == "__main__":
a = 1
while a <= 100:
if a % 2 == 0:
print(a)
a += 1
4.打印99乘法表(如有需要可以使用制表符'\t')
if __name__ == '__main__':
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={}".format(i,j,i*j),end='\t')
print()
5.输出10行10列的*
if __name__ == '__main__':
for i in range(10):
for j in range(10):
print('*',end='')
print()
6.打印出100-1000之间所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字
if __name__ == '__main__':
for i in range(100,1000):
num1 = i//100
num2 = i//10%10
num3 = i%10
if i == num1 ** 3 + num2 ** 3 + num3 **3:
print(i)
7.求1-2+3-4+5-...+99
if __name__ == '__main__':
s = 0
for i in range(1,100):
s += i * (-1) ** (i+1)
print(s)
8.五位数中,对称的数称为回文数,打印10000-99999的回文数并计算个数。
if __name__ == '__main__':
count = 0
for i in range(10000,100000):
if str(i)[:-3:-1] == str(i)[:2]:
count += 1
print(i,end=' ')
if count % 20 == 0:
print()
print("\n10000-99999之间的回文数个数为:",count)