Python学习笔记(二):运算符、分支、循环等基础内容(python中运算符)

网友投稿 330 2022-08-30


Python学习笔记(二):运算符、分支、循环等基础内容(python中运算符)

注释:# 注释的内容

数字:

整数:不区分int和long

进制:0xa、0o10、0b10bool:True、False

浮点数:3.1415复数:1 + 2j

字符串:

使用单双引号引用都可以,建议使用单引号,'python'或"python"'''和"""单双三引号,可以多行注释,可以在其中自由使用单双引号在字符串前面加上r或R前缀,表示该字符串不做特殊处理 ​

缩进:约定使用4个空格缩进 续行:

在行尾使用\如果使用各种括号,认为括号内是一个整体,内部跨行不用\ ​

标识符:

只能包含字母、数字或下划线只能以字母或下划线开头不能是Python的关键字,例如def、class不能作为标识符Python大小写敏感不允许使用中文不允许使用歧义单词,例如class_Python中不要随便使用下划线开头的标识符 ​

常量:

一旦赋值就不能改变值的标识符Python中无法定义常量​

变量:赋值后,可以改变值的标识符 Python的语言类型:是动态、强类型语言​

静态编译语言:

== != > < >= <=返回一个bool值(True、False)1 < '1' 1 == '1'链式比较操作符:4 > 3 > 2

逻辑运算符:

与and 或or 非not短路运算符:

and:如果第一个表达式为False,后面就没有计算的必要了,整个逻辑表达式一定为Falseor:如果第一个表达式为True,后面就没有计算的必要了,整个逻辑表达式一定为True

赋值运算符:​

a = min(3, 5)+= -= *= /= %=等x = y = z = 10说明:Python中没有++、--​

成员运算符:in、not in 身份运算符:is、is not 运算符优先级:算数运算符 > 位运算符 > 身份运算符> 成员运算符> 逻辑运算符说明:遇到长表达式,可以多用括号 表达式:由数字、符号、括号和变量等组成

算数表达式逻辑表达式赋值表达式:Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义

程序控制:

顺序:按照先后顺序一条条执行分支:根据不同的情况判断,条件满足时执行某条件下的语句循环:条件满足就反复执行,不满足就不执行或不再执行

单分支结构:if语句:

# condition必须是一个bool类型,此处有一个隐式转换bool(condition)if condition: 代码块

代码块:

类似于if语句冒号后面就是一个语句块if、for、def、class等

真值表:

对象/常量

''空字符串

' '

'string'

0

>=1

<=-1

()空元组

[]空列表

{}空字典

None

多分支结构:

if...elif...else语句:

if condition1: 代码块1elif condition2: 代码块2elif condition3: 代码块3...else: 代码块4

分支嵌套:​

if condition1: 代码块1else: if condition2: 代码块2 elif condition3: 代码块3 elif condition4: 代码块4 ... else: 代码块5

嵌套结构,可以是分支、循环的嵌套,可以互相嵌套多层​

input()函数获取键盘输入,变量类型为字符串​

while循环:

# 当条件满足即condition为True时,进入循环体,执行blockwhile condition: block

for循环:​

# range()函数# 当可迭代对象中有元素可以迭代,进入循环体,执行blockfor element in iteratable: block

循环continue语句:中断当前循环的当次执行,继续下一次循环​

循环break语句:终止当前循环​

总结:​

continue和break是循环的控制语句,只影响当前循环,包括while、for循环如果循环嵌套,continue和break也只影响语句块所在的那一层循环continue和break不是跳出语句块,所以if condition: break不是跳出if,而是终止if外的break所在的循环

循环else子句:

while condition: blockelse: block

for element in iteratable: blockelse: block

说明:如果循环正常执行完毕,会执行else子句;如果使用break终止,else子句将不会执行

简单代码示例:

range()函数使用:

for i in range(3): print(i, end=' ')print()for i in range(0, 3): print(i, end=' ')print()for i in range(0, 6, 2): print(i, end=' ')print()for i in range(3, 0, -1): print(i, end=' ')print()

for ... else ...使用:

for i in range(3): print(i)else: print('done')

for i in range(10): if i > 5: breakelse: print('ok')

无结果输出

打印10以内的奇数:

for i in range(1, 10, 2): print(i, end='、')

for i in range(1, 10): if i % 2 == 0: continue print(i, end='、')

字符串拼接:

str1 = 'ABCD'str2 = "EFGH"print(str1 + str2)print(type(str1 + str2))

给定一个不超过5位的正整数,判断其位数:

num = int(input('请输入一个不超过5位的正整数:'))if num <= 0 or num > 99999: print('给出的数字不符合要求')else: if num <= 9: print('输入的是1位的正整数') elif num <= 99: print('输入的是2位的正整数') elif num <= 999: print('输入的是3位的正整数') elif num <= 9999: print('输入的是4位的正整数') else: print('输入的是5位的正整数')

num = int(input('请输入一个不超过5位的正整数:'))if num >= 1000: if num >= 10000: print(5) else: print(4)else: if num >= 100: print(3) elif num >= 10: print(2) else: print(1)

给定一个不超过5位的正整数,判断其位数及每位对应的数值:

while True: val = input('请输入一个不超过5位的正整数:') if val == 'q' or val == 'quit': print('退出程序') break if not val.isdigit(): print('请输入大于0的正整数') continue num = int(val) if num == 0 or num >= 100000: print('输入的数字不在范围内') continue if num >= 1000: if num >= 10000: print('输入的数字为5位数,万位数' + str(num // 10000) + ',千位数' + str(num // 1000 % 10) + ',百位数' + str(num // 100 % 10) + ',十位数' + str(num // 10 % 10) + ',个位数' + str(num % 10)) else: print('输入的数字为4位数,千位数' + str(num // 1000) + ',百位数' + str(num // 100 % 10) + ',十位数' + str(num // 10 % 10) + ',个位数' + str(num % 10)) else: if num >= 100: print('输入的数字为3位数,百位数' + str(num // 100) + ',十位数' + str(num // 10 % 10) + ',个位数' + str(num % 10)) elif num >= 10: print('输入的数字为2位数,十位数' + str(num // 10) + ',个位数' + str(num % 10)) else: print('输入的数字为个位数' + str(num))

num1 = num2 = int(input('请输入一个不超过5位的正整数:'))if num1 >= 1000: if num1 >= 10000: res = 5 else: res = 4else: if num1 >= 100: res = 3 elif num1 >= 10: res = 2 else: res = 1print('该正整数有' + str(res) + '位')print('最高位到个位依次为:', end='')for i in range(1, res + 1): print(num1 // (10 ** (res - i)), end=' ') num1 = num1 % (10 ** (res - i))print('\n个位到最高位依次为:', end='')for _ in range(res): print(num2 % 10, end=' ') num2 = (num2 - num2 % 10) // 10

给定一个正整数,判断其位数:

num = int(input('请输入一个正整数:'))count = 1while True: num = num // 10 if num == 0: break count += 1print(str(count) + '位数')

打印一个边长为n的实心正方形:

val = input('请输入正方形边长:')num = 1len = int(val)while num <= len: print('* ' * len) num += 1

打印一个边长为n的空心正方形:

num = int(input('请输入正方形边长:'))for i in range(1, num + 1): if i == 1 or i == num: print('* ' * num) else: print('*' + ' ' * ((num - 2) * 2 + 1) + '*')

num = int(input('请输入正方形边长:'))val = num // 2for i in range(-val, num - val): if i == -val or i == num - val - 1: print('* ' * num) else: print('*' + ' ' * ((num - 2) * 2 + 1) + '*')

求100以内所有奇数的和:

num = 1sum = 0while num <= 100: sum += num num += 2print('100以内所有奇数的和为:', sum)

sum = 0for num in range(1, 100, 2): sum += numprint('100以内所有奇数的和为:' + str(sum))

sum = 0for num in range(1, 100): if num % 2 != 0: sum += numprint('100以内所有奇数的和为:' + str(sum))

求1000以内被7整除的前20个数:

count = 0for i in range(0, 1000, 7): count += 1 if count > 20: break print(i, end=' ')

判断学生成绩对应等级:

score = int(input('请输入学生成绩:'))if score >= 90: print('A')elif score >= 80: print('B')elif score >= 70: print('C')elif score >= 60: print('D')else: print('E')

输入三个正整数,比较大小,升序输出:

num1 = int(input('请输入第一个正整数:'))num2 = int(input('请输入第二个正整数:'))num3 = int(input('请输入第三个正整数:'))maximum = median = minimum = 0if num1 > num2: if num3 >= num1: maximum = num3 median = num1 minimum = num2 elif num3 <= num2: maximum = num1 median = num2 minimum = num3 else: maximum = num1 median = num3 minimum = num2else: if num3 >= num2: maximum = num3 median = num2 minimum = num1 elif num3 <= num1: maximum = num2 median = num1 minimum = num3 else: maximum = num2 median = num3 minimum = num1print(minimum, median, maximum)

给定n个正整数,求它们的算数平均数:

res = 0count = 1times = int(input('给定的正整数个数为:'))while count <= times: num = int(input('请输入第' + str(count) + '个数:')) res+= num count += 1print('算数平均数为:' + str(res / times))

res = 0times = int(input('给定的正整数个数为:'))for i in range(1, times + 1): num = int(input('请输入第' + str(i) + '个数:')) res += numprint('算数平均数为:' + str(res / times))

求1到阶乘n之和:

# 1 * 1 = 1

# 1 * 2 = 2

# 1 * 2 * 3 = 6

# 1 * 2 * 3 * 4 = 24

# 1 * 2 * 3 * 4 * 5 = 120

# 1 * 2 * 3 * 4 * 5 * 6 = 720

val = int(input('请输入一个数:'))sum = 0res = 1for i in range(1, val+1): res *= i sum += resprint('1到' + str(val) + '阶乘之和为:', sum)

val = int(input('请输入一个数:'))sum = 0for i in range(1, val + 1): res = 1 for j in range(1, i + 1): res *= j sum += resprint('1到' + str(val) + '阶乘之和为:', sum)

判断一个数是否是质数(素数):

质数:一个大于1的自然数只能被1和它本身整除

num = int(input('请输入一个自然数:'))for i in range(2, num): if num % i == 0: print(str(num) + '不是质数') breakelse: print(str(num) + '是质数')

求100以内所有质数的和:

res = 0for i in range(2, 101): for j in range(2, i): if i % j == 0: break else: res += i print(i, end='、')print('\n100以内所有质数的和为:', res)

print(2, end='、')res = 2# 舍弃所有偶数for i in range(3, 101, 2): for j in range(3, int(i ** 0.5) + 1, 2): if i % j == 0: break else: res += i print(i, end='、')print('\n100以内所有质数的和为:', res)

打印常规(左下)形态九九乘法表:

for i in range(1, 10): for j in range(1, i+1): print(str(j) + '*' + str(i) + '=' + str(i * j), end='\t') print()

for i in range(1, 10): for j in range(1, i+1): print('%d*%d=%d' % (j, i, j * i), end='\t') print('')

打印左上形态九九乘法表:

for i in range(1, 10): for j in range(1, 11 - i): print('%d*%d=%d' % (j, (10 - i), j * (10 - i)), end='\t') print()

打印右上形态九九乘法表:

for i in range(1, 10): print((i - 1) * '\t\t', end='') for j in range(1, 11 - i): print('%d*%d=%d' % (j, (10 - i), j * (10 - i)), end='\t') print()

另一种形态:

for i in range(1, 10): print((i - 1) * '\t\t', end='') for j in range(i, 10): print('%d*%d=%d' % (i, j, i * j), end='\t') print()

for i in range(1, 10): for j in range(1, 10): if i > j: print('{} {} {:<3}'.format(' ', ' ', ' '), end=' ') else: print('{0}*{1}={2:<3}'.format(i, j, i * j), end=' ') print()

说明:{2:<3}对应i * j,:<3冒号为分隔符,<表示左对齐,3表示宽度

打印右下形态九九乘法表:

for i in range(1, 10): print((10 - i) * '\t\t', end='') for j in range(i, 0, -1): print('%d*%d=%d' % (j, i, j*i), end='\t') print()

打印指定大小的菱形:

for i in range(1, 8): if i <= 4: print(' ' * (4 - i) + '*' * (2 * i - 1)) else: print(' ' * (i - 4) + '*' * (7 % i * 2 + 1))

for i in range(-3, 4): if i < 0: i = -i print(' ' * i + '*' * (7 - 2 * i))

打印任意大小的菱形:

num = int(input('请输入菱形的行数(必须为奇数):'))for i in range(-(num//2), (num+1)//2): if i <= 0: i = -i print(' ' * i + '*' * (num - 2 * i))

打印指定大小的对顶三角形:

for i in range(-7, 8, 2): if i < -1: i = -i if i == -1: continue print((7 - i) // 2 * ' ' + i * '*')

打印任意大小的对顶三角形:

num = int(input('请输入对顶三角形的行数(必须为奇数):'))a = num // 2for i in range(-a, num - a): if i < 0: i = -i print(' ' * (a - i) + '*' * (2 * i + 1))

打印闪电:

for i in range(-3, 4): if i < 0: print((-i) * ' ' + (4 + i) * '*') elif i == 0: print(7 * '*') else: print(3 * ' ' + (4 - i) * '*')

for i in range(-3, 4): if i == 0: print(7 * '*') print((-i) * ' ' + (4 + i) * '*') if i < 0 else print(3 * ' ' + (3 - i) * '*')

打印斐波那契数列的第n项:

1、1、2、3、5、8、13、21、34、...,数列从第3项开始,每一项等于前两项之和

num = int(input('显示斐波那契数列第几项:'))n1 = 1n2 = 1count = 3if num <= 2: print('斐波那契数列第' + str(num) + '项为:' + str(n1))else: while count <= num: res = n1 + n2 n1 = n2 n2 = res count += 1 print('斐波那契数列第' + str(num) + '项为:' + str(res))

打印100以内的斐波那契数列:

i = j = 1while i < 100: print(i, end=" ") i, j = j, i + j

打印斐波那契数列前n项:

num = int(input('打印斐波那契数列前几项:'))n1 = 1n2 = 1res = 0for i in range(1, num + 1): if i <= 2: print(1, end='、') else: res = n1 + n2 n1 = n2 n2 = res print(res, end='、')

猴子吃桃:

猴子第一天摘了若干个桃,吃了一半,不过瘾,又多吃了一个。第二天早上将剩下的桃吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上发现只剩下一个桃了。求第一天猴子共摘了多少个桃?

num = 1for i in range(9): num = (num + 1) * 2print(num)

说明:上述变量i只做计数用,可以写成_

num = 1for _ in range(9): num = (num + 1) * 2print(num)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用python代码给对象加上一顶圣诞帽(python写圣诞树)
下一篇:Python-函数(返回值字典)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~