Python——字符串格式化,运算符以及选择、循环结构_python 整除 format-程序员宅基地

技术标签: python  编辑器  笔记  numpy  Python  开发语言  

Python第二节

补充win命令行清屏命令:

0
>>> import os
>>> os.system("cls")

一、字符串格式化

首先我们接着来观察这串代码:

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
print("两个数之和是:" + str(res))

在python中,+ *在字符串中有特殊含义
+ 会拼凑两个字符串
* 会安备书输出字符串

我们在这里将有五种格式化字符串方案

1、print(“两个数之和是:” + str(res))

2、print(“两个数之和是:” , res)

示范输出:

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
# print("两个数之和是:" + str(res))
print("两个数之和是:" , res)

输出结果

D:\soft\pythonworkplace>test.py
请输入一个整数:1
请输入一个整数:2
两个数之和是: 3.0

D:\soft\pythonworkplace>

逗号译为空格进行拼接,只适合于两个数。
和接下来这个代码类似,不过下面这个代码麻烦些。
print(str(num1) + " + " + str(num2) + " = " + str(res)
代码:

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
# print("两个数之和是:" + str(res))
# print("两个数之和是:" , res)
print(str(num1) + " + " + str(num2) + " = " + str(res))

输出结果:

D:\soft\pythonworkplace>test.py
请输入一个整数:1
请输入一个整数:2
1.0 + 2.0 = 3.0

D:\soft\pythonworkplace>

3、格式化占位符:

print("%s + %s = %s" %(num1,num2,res))

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
# print("两个数之和是:" + str(res))
# print("两个数之和是:" , res)
# print(str(num1) + " + " + str(num2) + " = " + str(res))
print("%s + %s = %s" %(num1,num2,res))

输出结果:

D:\soft\pythonworkplace>test.py
请输入一个整数:1
请输入一个整数:2
1.0 + 2.0 = 3.0

D:\soft\pythonworkplace>

这里输出多个值,所以%后面需要加上括号,而当我们输出一个值时,是可以不加括号的。
print("两个数之和是:%s" %res)
比如像如下代码:

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
# print("两个数之和是:" + str(res))
# print("两个数之和是:" , res)
# print(str(num1) + " + " + str(num2) + " = " + str(res))
# print("%s + %s = %s" %(num1,num2,res))
print("两个数之和是:%s" %res)

输出结果:

D:\soft\pythonworkplace>test.py
请输入一个整数:1
请输入一个整数:2
两个数之和是:3.0

D:\soft\pythonworkplace>

4、python3.5提供的,format方法:

print("{} + {} = {}" .format(num1, num2, res))
花括号进行占位,代码如下

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
# print("两个数之和是:" + str(res))
# print("两个数之和是:" , res)
# print(str(num1) + " + " + str(num2) + " = " + str(res))
# print("%s + %s = %s" %(num1,num2,res))
# print("两个数之和是:%s" %res)
print("{} + {} = {}" .format(num1, num2, res))

输出结果:

D:\soft\pythonworkplace>test.py
请输入一个整数:1
请输入一个整数:2
1.0 + 2.0 = 3.0

D:\soft\pythonworkplace>

5、python3.6衍生从python3.5衍生出来(推荐的)

print(f"{num1} + {num2} = {res}")

# 输入两个数

num1 = float(input("请输入一个整数:"))
num2 = float(input("请输入一个整数:"))

res = num1 + num2
# print("两个数之和是:" + str(res))
# print("两个数之和是:" , res)
# print(str(num1) + " + " + str(num2) + " = " + str(res))
# print("%s + %s = %s" %(num1,num2,res))
# print("两个数之和是:%s" %res)
# print("{} + {} = {}" .format(num1, num2, res))
print(f"{
      num1} + {
      num2} = {
      res}")

输出结果:

D:\soft\pythonworkplace>test.py
请输入一个整数:1
请输入一个整数:2
1.0 + 2.0 = 3.0

D:\soft\pythonworkplace>

二、运算符

1、算术运算符:

+
-
*
/
// # 整除 只会获取商,也就是说整数部分
& # 求模
** # 幂次方

>>> a = 20
>>> b = 10
>>> c = 3
>>> a + b
30
>>> a - b
10
>>> a * b
200
>>> a / b
2.0
>>> b / c
3.3333333333333335
>>> b // c
3
>>> b % c
1
>>> 9 % 3
0
>>> a ** c
8000
>>> 20 ** 0.5
4.47213595499958
>>> 4 ** 0.5
2.0
>>>

2、关系(比较)运算符

>
<
>=
<=
!=
== 等于

>>> a
20
>>> b
10
>>> c
3
>>> a > b
True
>>> a >= b
True
>>> a < b
False
>>> a <= b
False
>>> a != b
True
>>> a == b
False
>>>

3、逻辑运算符

与 and
或 or
非 not

>>> a > b and a > c
True
>>> a > b and a > c and a < c
False
>>> a > b and a > c or a < c
True
>>>

4、所属运算符

in # 表示是否存在某一个元素
not in # 表示不在里面

>>> ["1","2","3"]
['1', '2', '3']
>>> number = ["1","2","3"]
>>> "1" in number
True
>>> "4" in number
False
>>> "1" not in number
False
>>> "4" not in number
True

5、is运算符(身份)

is # 是
is not # 不

>>> num = "4"
>>> num == "4"
True
>>> num is "4"
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
True
>>> num is not "4"
<stdin>:1: SyntaxWarning: "is not" with a literal. Did you mean "!="?
False
>>>

注意: 等于判断的两个变量的值,而is判断的是两个变量的内存地址

6、赋值运算符

=
+= # a += 3 <==>a = | a + 3
-=
*=
/=
//=
**=

>>> a
20
>>> b
10
>>> c
3
>>> a += c
>>> a
23
>>> c
3
>>> a -= c
>>> a
20
>>> c
3
>>> a /= c
>>> a
6.666666666666667
>>> a *= c
>>> a
20.0
>>> a //= c
>>> a
6.0
>>> a **= c
>>> a
216.0
>>>

Python没有自增自减运算符

7、优先级

在这里插入图片描述

8、位运算符*(了解)

位:二进制运算
计算机底层:
1、效率高,节省运算步骤。
2、计算机底层是没有数字的,都是用半导体进行模拟0和1。
3、二极管:正到负,半导体,负到正,绝缘体。
4、一个二极管模拟成一个字节,8个bit位组成一个byte字节。
5、8个字节存储最大为255,短整型,两个字节去描述。
加上符号位,范围变为了-128到127,原本范围为0-255.

源码-反码-补码: 解决计算机计算负数问题;
正数没有源码,反码,补码。
则负数需要进行补码来计算。

原码: 数值的标准的二进制位
反码: 符号位不变,其余个位取反
补码: 反码加+1

举例:
-3
原码 1000 0011
反码 1111 1100
补码 1111 1101
计算机底层都是基于补码进行运算的。

  • & 与运算
    二进制为按位与运算
    (两者都为真,则为真,否则都为假)
    实践
    0000 1010 10
    0000 1011 11
    ——————
    0000 1010 10
>>> a = 11
>>> b = 10
>>> a & b
10
>>>

缩小

  • | 或运算
    二进制为按位或运算
    (只要一者为真则为真,两个都为假则为假)
    实践:
    0000 1010 10
    0000 1011 11
    ——————
    0000 1011 11
>>> a = 11
>>> b = 10
>>> a | b
11

扩大

  • ^ 异或运算
    不同为真
    实践
    0000 1010 10
    0000 1011 11
    ——————
    0000 0001 1
>>> a = 11
>>> b = 10
>>> a ^ b
1
>>>

num ^ 0 结果最终为这个值
num ^ num 结果都为0
num & (num-1) == 1
要成立num必须为2的幂次方倍,不包含负数。
发散,随机

  • ~ 按位取反
    所有位都会反转
    实践
    0000 0010 2
    1111 1101 -3
>>> ~ 2
-3
>>>
  • >> 右移运算
    二进制位每向右移一位,就是除以2
    实践
>>> 8 >> 2
2
>>>

计算机所有实验都是基于位运算的

  • << 左移运算
    二进制位每向左移一位,就是乘以2
>>> 2 << 2
8

9、三元运算符

C、Java:
表达式?值1:值2
简单的if-else结构
Python:
变量 = 值1 if 表达式 else 值2

>>> num = 100 if 100 > 23 else "1"
>>> num
100
>>> num = 100 if 100 < 23 else "1"
>>> num
'1'
>>>

正常情况不能直接写变量直接回车,应为print()
之所以这里可以,因为我用的是终端,终端方便学习而不是来进行写代码。

三、练习

交换两个数:

方法一、临时变量法

实现代码:

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

print(f"交换前: num1 = {
      num1},num2 = {
      num2}")

# 临时变量法
temp = num1
num1 = num2
num2 = temp

print(f"交换后: num1 = {
      num1},num2 = {
      num2}")

输出结果:

D:\soft\pythonworkplace>test.py
请输入第一个整数:2
请输入第二个整数:3
交换前: num1 = 2,num2 = 3
交换后: num1 = 3,num2 = 2

D:\soft\pythonworkplace>

方法二、数学法

实现代码:

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

print(f"交换前: num1 = {
      num1},num2 = {
      num2}")
"""
# 临时变量法
temp = num1
num1 = num2
num2 = temp
"""
# 数学法
num1 = num1 + num2
num2 = num1 - num2
num1 = num1 - num2

print(f"交换后: num1 = {
      num1},num2 = {
      num2}")

输出结果:

D:\soft\pythonworkplace>test.py
请输入第一个整数:5
请输入第二个整数:7
交换前: num1 = 5,num2 = 7
交换后: num1 = 7,num2 = 5

D:\soft\pythonworkplace>

方法三、Python特有多值交换方式

借助寄存器或缓存
实现代码:

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

print(f"交换前: num1 = {
      num1},num2 = {
      num2}")
"""
# 临时变量法
temp = num1
num1 = num2
num2 = temp

# 数学法
num1 = num1 + num2
num2 = num1 - num2
num1 = num1 - num2
"""

num1,num2 = num2,num1

print(f"交换后: num1 = {
      num1},num2 = {
      num2}")

输出结果:

D:\soft\pythonworkplace>test.py
请输入第一个整数:1
请输入第二个整数:3
交换前: num1 = 1,num2 = 3
交换后: num1 = 3,num2 = 1

D:\soft\pythonworkplace>

方法四、异或法

实现代码·:

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

print(f"交换前: num1 = {
      num1},num2 = {
      num2}")
"""
# 临时变量法
temp = num1
num1 = num2
num2 = temp

# 数学法
num1 = num1 + num2
num2 = num1 - num2
num1 = num1 - num2

num1,num2 = num2,num1
"""
# 异或法
num1 = num1 ^ num2
num2 = num1 ^ num2
num1 = num1 ^ num2

print(f"交换后: num1 = {
      num1},num2 = {
      num2}")

输出结果:

D:\soft\pythonworkplace>test.py
请输入第一个整数:2
请输入第二个整数:5
交换前: num1 = 2,num2 = 5
交换后: num1 = 5,num2 = 2

D:\soft\pythonworkplace>

四、程序控制流程(三大流程)

顺序
	代码总体而言,是从左到右,从上到下执行的
选择结构
		单分支 if condition:
 				# 如果条件满足,代码会进入if执行
 		双分支 if condition:
 				# 如果条件满足,代码会进入if执行
 			else:
 				# 如果不满足条件,进入else
 		多分支 if condition1:
 				# 如果条件1满足,代码会进入if执行
 			elif condition2:
 				xxxx
 			······
 			elif conditionn:
 					print("xxxx")
 			else:
 				其他条件
循环结构

1、选择结构

1、选择结构单分支实例:

age = int(input("请输入您的年龄:"))

if age >= 18:
	print("恭喜你,成年啦")
	

输出结果:

D:\soft\pythonworkplace>test.py
请输入您的年龄:19
恭喜你,成年啦

D:\soft\pythonworkplace>

这里,如果我们不进行换行缩进,那么会报如下错误:
错误代码:

age = int(input("请输入您的年龄:"))

if age >= 18:
print("恭喜你,成年啦")

报错显示:

D:\soft\pythonworkplace>test.py
  File "D:\soft\pythonworkplace\test.py", line 44
    print("恭喜你,成年啦")
    ^
IndentationError: expected an indented block after 'if' statement on line 43

D:\soft\pythonworkplace>

这个Indentation便是缩进遇到的错误。
如果说这里我们将空格和tab混用也是会出现大问题的,这里就很难用肉眼看出来。
错误代码:
这里缩进的第一行用空格,第二行用tab

age = int(input("请输入您的年龄:"))

if age >= 18:
	print("恭喜你,成年啦")
    print("恭喜你,成年啦")
    

错误显示:

D:\soft\pythonworkplace>test.py
  File "D:\soft\pythonworkplace\test.py", line 45
    print("恭喜你,成年啦")
                                  ^
IndentationError: unindent does not match any outer indentation level

D:\soft\pythonworkplace>

当然我们也有以下情况来看Python中缩进的重要性。
实现代码:

age = int(input("请输入您的年龄:"))

if age >= 18:
	print("恭喜你,成年啦1")
print("恭喜你,成年啦2")

输出结果:

D:\soft\pythonworkplace>test.py
请输入您的年龄:2
恭喜你,成年啦2

D:\soft\pythonworkplace>

我们可以看到我们未进行缩进最终输出了。
这里我们对比C来看,C中if如果有多行肯定是要加括号来进行编译的,而Python则是比较简单,通过缩进,所以,也就有出现错误的可能。

2、选择结构多分支实例:
代码如下:

age = int(input("请输入您的年龄:"))

if age >= 18:
	print("恭喜你,成年啦")
else:
	print("健健康康,快快长大")

输出结果:

D:\soft\pythonworkplace>test.py
请输入您的年龄:3
健健康康,快快长大

D:\soft\pythonworkplace>test.py
请输入您的年龄:18
恭喜你,成年啦

D:\soft\pythonworkplace>

3、选择结构多条件多分支实例:
实现代码:

week = input("今天星期数:")

if week == "1":
	print("今天星期一,猴子穿花衣")
elif week == "2":
	print("今天星期二,猴子去偷桃")
elif week == "3":
	print("今天星期三,猴子去爬山")
elif week == "4":
	print("今天星期四,猴子去跑步")
elif week == "5":
	print("今天星期五,猴子打老虎")
elif week == "6" or week == "7":
	print("今天周末,猴子在休息")

输出结果:

D:\soft\pythonworkplace>test.py
今天星期数:1
今天星期一,猴子穿花衣

D:\soft\pythonworkplace>test.py
今天星期数:4
今天星期四,猴子去跑步

D:\soft\pythonworkplace>test.py
今天星期数:6
今天周末,猴子在休息

D:\soft\pythonworkplace>test.py
今天星期数:7
今天周末,猴子在休息

D:\soft\pythonworkplace>

2、循环结构

循环: 周而复始则谓之为循环
1、while循环

while condition:
	#循环体

实例:

# 要求在控制台上输出100次hello world
index = 0
while index < 100:
	print("hello world",index + 1)
	index += 1

我们可以将循环分解为四步,通过条件的不断变化,从而确定循环体是否继续执行。
1、索引定义;构建条件;
2、条件判断;
3、整个循环体;
4、index +=1;

2、for循环
Python中的for本质是用来迭代容器中每一个元素!!!

3、break与continue
1、break
最简单的死循环:

while True:
	print("死循环,会不断的执行")

break的使用
首先这里我们输出1到100

index = 1
while index <=100:
	print(index)
	index += 1

判断index到50
这里使用break中断循环

index = 1
while index <=100:
	if index == 50:
		break
	print(index)
	index += 1

break在Python只有一个作用:终止循环。
在C中还有跳出swtch语法的作用。
2、contince
跳过本次循环
continue的使用

index = 1
while index <=100:
	index += 1
	if index == 50:
		continue
	print(index)

输出结果:
在这里插入图片描述
我们可以看到这里把50漏掉了。
原因为我们在index为50之后,continue直接跳回了下一次循环的起点,不进行执行print(index)

当然,我们可以把index += 1这个语句进行变化位置来直观的分析continue的作用:

index = 1
while index <=100:
	if index == 50:
		continue
	print(index)
	index += 1

输出结果:
在这里插入图片描述
这里我们可以看见进入了死循环,原因是,当index为50时,进行了continue,则直接跳到if index == 50,此时的index为50,那么50=50也就构成了死循环。
此时的退出方式为ctrl+c

pass:跳过;临时语法
临时让缩进语法不要报错,主要使用在目前不确定缩进体的语法中。
注意如果将来代码实现了,一定要删除pass
else:(针对break的)

3、练习

1、使用循环,实现1-100的和;
实现代码:

count = 0
index = 1
while index <= 100:
	count += index
	index += 1
print(f"0-100的和是{
      count}")

输出结果:

D:\soft\pythonworkplace>test.py
0-100的和是5050

D:\soft\pythonworkplace>

2、使用循环,实现1-100的积;
实现代码:

count = 1
index = 1
while index <= 100:
	count *= index
	index += 1

print(f"1-100的积是{
      count}")

输出结果:

D:\soft\pythonworkplace>test.py
1-100的积是93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

D:\soft\pythonworkplace>

3、打印图案
*
**
***
****
*****
实现代码:

layer =int(input("请输入您要打印的层数:"))
index = 0
while index < layer:
	# 每一次打印一个星
	j = 0
	while j <= index:
		print("*")
		j += 1
	index +=1

我们分析觉得这串代码是对的,实则不然,我们来看下输出结果:
在这里插入图片描述
我们可以看到这时是竖着排列的,这又是什么原因的?
原因是print的自身语法问题:

>>> help(print)
Help on built-in function print in module builtins:

print(*args, sep=' ', end='\n', file=None, flush=False)
    Prints the values to a stream, or to sys.stdout by default.

    sep
      string inserted between values, default a space.
    end
      string appended after the last value, default a newline.
    file
      a file-like object (stream); defaults to the current sys.stdout.
    flush
      whether to forcibly flush the stream.

>>>

我们主要一起来看这一行:
print(*args, sep=' ', end='\n', file=None, flush=False)
这里不同我们可以来实践下:

>>> a = 123
>>> print("a = ",a)
a =  123
>>> print("a = ",a, sep = "+")
a = +123
>>> print("a = ",a, end = "")
a =  123>>>

我们可以看到sep控制的是默认用空格来进行隔开。
end则是默认换行,从而导致刚才情况的发生。

所以真正的实现代码为:

layer =int(input("请输入您要打印的层数:"))

index = 0
while index < layer:
	# 每一次打印一个星
	j = 0
	while j <= index:
		print("*",end = "")
		j += 1
	print("")
	index +=1

输出结果为:

D:\soft\pythonworkplace>test.py
请输入您要打印的层数:10
*
**
***
****
*****
******
*******
********
*********
**********

D:\soft\pythonworkplace>

当然,这里我们可以把代码进行简化下:
实现代码:

index = 0
while index < 10:
	print("*" * index)
	index +=1

输出结果:

D:\soft\pythonworkplace>test.py

*
**
***
****
*****
******
*******
********
*********

D:\soft\pythonworkplace>

4、在控制台上输出一个九九乘法表
实现代码:

i = 1
while i <= 9:
	j = 1
	while j <= i:
		print(f"{
      j} x {
      i} = {
       i * j }",end = " ")
		j += 1
	print()

	i += 1

输出结果:

D:\soft\pythonworkplace>test.py
1 x 1 = 1
1 x 2 = 2 2 x 2 = 4
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81

D:\soft\pythonworkplace>

五、作业

作业1: 判断一个数,是否是2的指数
实现代码:

n = int(input("输入数字,判断是否是2的指数:"))
if n&(n - 1) == 0:
	print("是2的指数")
else:
	print("不是2的指数")
	

输出结果:
在这里插入图片描述

作业2: 给定成绩,判断用户成绩的档次

100:提示满分
90~100:优秀
80~100:良好
70~80:还可以,多多努力
60~70:合格
0~60:不合格
0:鸡蛋

实现代码:

score = int(input("输入您的成绩,判断成绩的级别:"))
 
if score == 100:
	print("满分!")
elif 90 <= score < 100:
	print("优秀!")
elif 80 <= score <90:
	print("良好!")
elif 70 <= score <80:
	print("还可以,多多努力!")
elif 60 <= score <70:
	print("合格!")
elif 0< score <60:
	print("不合格!")
else:
	print("输入错误,请重新输入!")
	

输出结果:
在这里插入图片描述
作业3: 下列哪一项是“4是奇数或-9为正数”的否定( C)
A、4是偶数或-9不是负数
B、4是奇数或-9不是负数
C、4是偶数和-9是负数
D、4是奇数和-9不是负数

作业4: 如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是(D )
A、 C=A|B
B、 C=~A
C、 C=~B
D、 C=A&B

作业5: 判断一个整数是奇数还是偶数,至少有两种方式实现(位运算已经讲解的话)
方法一

n = int(input("输入数字,判断是奇数还是偶数:"))
if n & 1 == 0:
	print("%s是偶数" %n)
elif n & 1 == 1:
	print("%s是奇数" %n)
	

输出结果:
在这里插入图片描述
方法二

n = int(input("输入数字,判断是奇数还是偶数:"))
if n % 2 == 0:
	print("%s是偶数" %n)
else:
	print("%s是奇数" %n)
	

输出结果:
在这里插入图片描述

作业6: 求矩形的面积和周长
实现代码:

length = int(input("请输入矩形的长度:"))
wide = int(input("请输入矩形的宽度:"))
 
S = length * wide
C = (length + wide) * 2
 
print(f"矩形的面积为:{
      S} 矩形的周长为:{
      C}")
 

输出结果:
在这里插入图片描述
作业7: 判断一个数是否是质数(素数):
实现代码:

number=int(input("请输入一个1~100的整数:"))
if number > 1:
    for i in range(2,number):
         if(number%i==0):
            print(number,"不是质数")
            print(i,"*",number//i,"=",number)
            break
         else:
            print(number,"是质数")
else:
        print(number,"不是质数")
        

输出结果:
在这里插入图片描述
作业8: 设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面)

   展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
   输入付款金额->打印购买小票(扩展)  

实现代码:

print("\t\t\t英雄商城英雄列表")
print("~ * ~"*15)
print("编号  姓名   昵称    价格   库存         描述")
print(" 1    纳尔  迷失之牙  3500   100  丛林不会原谅盲目与无知")
print(" 2    锐雯  放逐之刃  4000   100  她是残忍高效的战士")
print(" 3    薇恩  暗夜猎手  3500   100  这个世界不想人们想象的那么美好")
print(" 4    扎克  生化魔人  3000   100  即使你没有脊柱,你也必须站起来")
print(" 5    杰斯 未来守护者 2500   100  武装着睿智与魅力,你的选择没有错")
print("~ * ~"*15)
ID = int(input("(温馨提示)请输入您要购买的英雄编号:"))
price = int(input("(温馨提示)请输入您要购买的英雄价格:"))
num = int(input("(温馨提示)请输入您要购买的英雄数量:"))
pay = price * num
 
reminder1 = str(input("是否确认支付(Y/N):"))
if reminder1 == 'Y':
	print(f"您需要支付{
      pay}元")
else:
	print("支付失败")
 
reminder2 = str(input("是否打印票据(Y/N):"))
 
if reminder2 == 'N':
	print("感谢购买")
else:
	print("英雄购买票据")
	print("~ * ~"*15)
	print(f"\t英雄编号:{
      ID}")
	print(f"\t英雄价格:{
      price}")
	print(f"\t英雄数量:{
      num}")
	print(f"\t应付付款:{
      pay}")
	print("~ * ~"*15)
	

输出结果:
在这里插入图片描述
作业9: 有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
实现代码:

index=1000
while index<10000:
	a=index//100%10
	b=index//10%10
	if a==3 and b==6 and index%2==0 and index%3==0:
		print(index)
	index +=1
	

输出结果:
在这里插入图片描述

作业10: 编程求一个四位自然数ABCD,它乘以A后变成DCBA
实现代码:

num=range(1000,10000)
for i in num:
    A = int(i / 1000) % 10
    B = int(i / 100) % 10
    C = int(i / 10) % 10
    D = i % 10
    num1=D*1000+C*100+B*10+A
    if i*A==num1:
        print(i)

输出结果:
在这里插入图片描述

作业11: 用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b。
实现代码:

a,b = eval(input("请输入两个数a,b:"))
if a % b == 0 or a + b > 1000:
    print(a)
else:
    print(b)

输出结果:
在这里插入图片描述
作业12: 请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些
实现代码:

num = int(input("请输入一个整数:"))
 
if num & 1 ==0:
	list1 = []
	for i in range(1,num+1):
		if i % 3 == 0:
			list1.append(i)
	print(f"{
      num}是偶数,从1到{
      num}之间是3的倍数的有{
      list1}")
else:
	list2 = []
	for i in range(1,num+1):
		if i % 5 == 0:
			list2.append(i)
	print(f"{
      num}是奇数,从1到{
      num}之间是5的倍数的有{
      list2}")

输出结果:
在这里插入图片描述
作业13: 输入三边的长度,求三角形的面积和周长(海伦公式)
实现代码:

a = float(input("请输入三角形第一条边的长度:"))
b = float(input("请输入三角形第二条边的长度:"))
c = float(input("请输入三角形第三条边的长度:"))
 
C = a + b + c
p = 0.5 * (a + b + c)
S = (p * (p-a) * (p-b) * (p-c)) ** (0.5)
 
if a + b > c and a + c > b and b + c > a:
	print(f"三角形的周长为:{
      C},三角形的面积为:{
      S}")
else:
	print("这不是三角形,请重新输入!")

输出结果:
在这里插入图片描述
作业14: 某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?
实现代码:

a,b = eval(input("请输入T恤和裤子的数量:"))
 
if a == 2:
	price_a = 35 * a * 0.9
elif a >= 3:
	price_a = 35 * a * 0.8
else:
	price_a = 35 * a 
 
if b >= 2:
	price_b = 120 * b * 0.9
else:
	price_b = 120 * b
 
money = price_a + price_b
 
print(f"应该支付{
      money}元")

输出结果:
在这里插入图片描述
作业15: 鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?
实现代码:

a,b = eval(input("请输入头和脚的数量:"))
 
for rabbit in range(1,a+1):
	chicken = a - rabbit
	if rabbit + chicken == a and 4 * rabbit + 2 * chicken == b:
		print(f"有{
      rabbit}只兔子,{
      chicken}只鸡")

输出结果:
在这里插入图片描述
作业16: 猜数字游戏(使用random模块完成)
电脑随机一个范围内的数,用户输入数据判断,
如果数大了,提供”数大了“
成功之后,加上用户是否继续功能
实现代码:

import random
computer = random.randint(0,99)
print(computer)
count=0
while 	True:
	guess = int(input("请输入你要猜的数字(0-100之间):"))
	count += 1
	if guess > computer:		
		print("猜大了")
	elif guess < computer:
		print("猜小了")
	else:
		print("猜对了")		
		
		A = int(input("是否继续(0/1):"))		
		if A == 1:
			computer = random.randint(0,99)
		else:
			break
print(f"总共猜了{
      count}次")	
print ("game over")

输出结果:
在这里插入图片描述
作业17: 猜拳游戏:石头、剪刀、布的游戏
实现代码:

import random
 
player = int(input("请输入您的选择(1.石头 2.剪刀 3.布):"))
computer = random.randint(1,3)
 
print(f"{
      computer}")
if player == 1:
	if computer == 1:
		print("平手")
	elif computer == 2:
		print("玩家赢")
	else:
		print("玩家输")
elif player == 2:
	if computer == 1:
		print("玩家输")
	elif computer == 2:
		print("平手")
	else:
		print("玩家赢")
elif player == 3:
	if computer == 1:
		print("玩家赢")
	elif computer == 2:
		print("玩家输")
	else:
		print("平手")

输出结果:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_63172698/article/details/131029231

智能推荐

ModuleNotFoundError:No module named'pip'-程序员宅基地

文章浏览阅读196次。今天在运行pip时报错“ModuleNotFoundError:No module named’pip’”在执行“pip -m ensurepip"时显示已经存在pip,但运行时仍旧报错。解决方法选择重新安装pip1.输入”curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py“ 运行;2.输入”python get-pip.py“...

非参数估计---直方图法、Kn近邻估计法、Parzen窗法-程序员宅基地

文章浏览阅读1.1w次,点赞12次,收藏69次。当需要估计的概率密度函数的形式未知,比如我们并不能知道样本的分布形式时,我们就无法用最大似然估计方法或贝叶斯估计方法来进行参数估计,而应该用非参数估计方法。这里就介绍三种非参数估计方法。 需要知道的是,作为非参数方法的共同问题是对样本数量需求较大,只要样本数目足够大众可以保证收敛于任何复杂的位置密度,但是计算量和存储量都比较大。当样本数很少时,如果能够对密度函数有先验认识,则参数估计能取得更好的估..._非参数估计

插入数据 java_JAVA插入数据笔记-程序员宅基地

文章浏览阅读231次。1.向数组中插入元素的方法示例.import java.util.*;public class Test01 {public static void main(String[] args) {int[]list = new int[5]; //长度为5的数组Scanner input = new Scanner(System.in);System.out.println("请为数组..._java用代码先计算要插入数据库的位置,在插入数据

产品经理业务流程图的绘制流程分享_张楠 产品经理-程序员宅基地

文章浏览阅读1.4k次。图1:用即时贴与白板做的简单流程图前言:近来一段时间,忙于整理业务流程图,期间,关于流程图的绘制方法和工具也与内部团队和外部做了心得交流,恰好,个人生活也牵涉在买房,婚礼,户口迁移等流程中。不知不觉,伴随着实践与反思,个人所得的系统知识趋于完整,今儿天气极好,坐在飘窗一隅,听着间或几声鸟鸣歌唱,偶尔瞥一眼窗外的遍地绿荫,真真觉得是个写点什么的日子。所以就整理成文,如果恰好对你有所帮助,那是真真_张楠 产品经理

解决XshellXftpPortable.exe运行不了、打不开问题_xshellportable打开不了-程序员宅基地

文章浏览阅读2.6k次。解决XshellXftpPortable.exe运行不了、打不开问题;1.首先点击控制面板---->程序和功能,进入查看程序中是否下载了,Microsoft_Visual c++(05、08、12),由于XshellXftpPortable需要的运行程序版本较低,所以三个都需要下载安装,安装运行,如图所示:2.完成运行之后,需要重启电脑,重启完成之后如果还不能启动找到服务里面 Wind..._xshellportable打开不了

共享充电宝方案/案列/APP/小程序/项目/网站_共享充电宝项目开发-程序员宅基地

文章浏览阅读8.6k次,点赞3次,收藏31次。随着国人出国旅游,购物不断增长,现在海外共享充电宝市场也随着升温,引起了各方投资者的密切关注。不得不说,从新马泰,再到欧洲各国,都是一个非常大的市场。共享充电宝主要是先扫码后充电,存在于各种公共场所,主要是为人们带来便利。对智能手机重度依赖的今天,“低电量焦虑症”似乎成为人们的一种新型流行病,甚至有人听到电量低警示音就过敏。现在有了共享充电宝,也许可以缓解下病情。目录一、共享充电宝方案介绍二..._共享充电宝项目开发

随便推点

一个C语言初学者写一个查找替换程序的历程_编写一个程序replace,采用命令行的方式,用给定的字符串替换指定文件中的目标字符-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏4次。本人大一,正式接触C语言刚刚三个月_编写一个程序replace,采用命令行的方式,用给定的字符串替换指定文件中的目标字符

AR 技术介绍-程序员宅基地

文章浏览阅读2.2k次。增强现实(Augmented Reality,简称AR)是一种将虚拟世界的数字信息与真实世界相结合的技术。通过在现实场景中叠加虚拟的图像、声音、视频等内容,AR创造了一种增强的视听体验。_ar

maven 依赖 war包问题_maven war包依赖war包-程序员宅基地

文章浏览阅读1.6k次。1. maven中配置依赖war包配置war包插件 org.apache.maven.plugins maven-war-plugin 2.6 _maven war包依赖war包

用JS 输出 倒三角形_js倒三角-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏15次。效果图以下是代码及 每行代码解释,仅供参考。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-wi..._js倒三角

java-net-php-python-jsp大学生兼职雇佣系统计算机毕业设计程序-程序员宅基地

文章浏览阅读99次。springboot基于springboot的家居销售网站。springboot基于vue的百乐儿童玩具公司管理系统。springboot晨曦文学社在线投稿系统的设计与实现。springboot物流车辆规费管理系统的设计与实现。springboot校园课室资源预约系统设计与实现。ssm基于SSM高校教师个人主页网站的设计与实现。ssm基于Vue和mysql的智能图书管理系统。springboot编程训练系统设计与实现。ssm基于ssm的电子配件公司仓库管理系统。springboot点餐系统的设计与实现。

TCP/IP-程序员宅基地

文章浏览阅读1k次,点赞22次,收藏26次。通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。而 HTTP属于它内部的一个子集。协议族。

推荐文章

热门文章

相关标签