网安零基础学习-python-while循环(灰帽编程9)

一、了解

小游戏
猜数字的游戏
程序可以取出一个100以内的随机整数
用户输入一-个数字进行比较
你猜大
你猜小了
猜对
如何实现

p_choice = int(input("请输入一个100以内的数"))
c_choice = 50
if p_choice > c_choice:
    print("大了")
elif p_choice < c_choice:
    print("小了")
else:
    print("对了")
    

二、random模块(随机数)

在这里插入图片描述

random的使用

import random
c_choice = random.randint(1,100)  #随机输出1-100的数
print(c_choice)
p_choice = int(input("请输入一个100以内的数"))
if p_choice > c_choice:
    print("大了")
elif p_choice < c_choice:
    print("小了")
else:
    print("对了")
    

三、循环(while,for循环)

1.while 条件语句:
子语句
实现在屏幕上输出1-10

i=0
while i<=10:
    i=i+1
    print(i)

四、小游戏优化

import random
num=0
c_choice = random.randint(1,100)  #随机输出1-5的数
while num<10:
    num=num+1
    p_choice = int(input("请输入一个5以内的数"))
    if p_choice > c_choice:
        print("大了")
    elif p_choice < c_choice:
        print("小了")
    else:
        print("对了")
        break
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 循环结构是编程中非常重要的一部分,其中while循环是一种常见的循环结构。在Python中,我们可以使用while循环来实现凯撒密码加密。 凯撒密码是一种简单的加密方法,它将明文中的每个字母都替换为字母表中固定位置后的字母。例如,如果我们将字母表向右移动3个位置,那么A就会变成D,B就会变成E,以此类推。 下面是一个使用while循环实现凯撒密码加密的示例代码: ``` # 定义明文和密钥 plaintext = "HELLO WORLD" key = 3 # 将明文转换为大写字母 plaintext = plaintext.upper() # 定义密文 ciphertext = "" # 遍历明文中的每个字符 i = 0 while i < len(plaintext): # 如果是字母,则进行加密 if plaintext[i].isalpha(): # 将字母转换为ASCII码 ascii_code = ord(plaintext[i]) # 加上密钥 shifted_ascii_code = ascii_code + key # 如果超出了字母表范围,则回到字母表开头 if shifted_ascii_code > ord('Z'): shifted_ascii_code -= 26 # 将加密后的ASCII码转换为字母 ciphertext += chr(shifted_ascii_code) # 如果不是字母,则直接添加到密文中 else: ciphertext += plaintext[i] i += 1 # 输出密文 print(ciphertext) ``` 在上面的代码中,我们首先定义了明文和密钥。然后将明文转换为大写字母,以便后面的加密操作。接着定义了一个空字符串ciphertext,用于存储加密后的密文。 在while循环中,我们遍历明文中的每个字符。如果是字母,则进行加密操作。具体来说,我们将字母转换为ASCII码,然后加上密钥。如果加密后的ASCII码超出了字母表范围,则回到字母表开头。最后将加密后的ASCII码转换为字母,并添加到密文中。如果不是字母,则直接添加到密文中。 最后,我们输出加密后的密文。 ### 回答2: 凯撒密码是一种简单的加密方式,它的原理是将明文中的每个字母用字母表中其后面第k个字母来代替,其中k为加密密钥。在Python中,我们可以使用while循环来实现凯撒密码的加密过程。 首先,我们需要定义一个加密密钥k和明文字符串s,然后将密文字符串c初始化为空字符串。接下来,我们可以使用while循环来遍历明文字符串s中的每个字符。对于每个字符,我们可以使用ord()函数将其转换成ASCII码,然后将其加上密钥k并对26取余,再使用chr()函数将其转换成密文中的字符。最后,我们需要将加密后的字符拼接到密文字符串c中。 以下是凯撒密码加密的Python代码示例: ``` k = 3 # 加密密钥 s = "hello" # 明文字符串 c = "" # 密文字符串 i = 0 # 计数器 while i < len(s): ch = s[i] # 获取当前字符 code = ord(ch) # 将字符转换成ASCII码 code = (code + k) % 26 # 加密 cipher = chr(code + ord('a')) # 将ASCII码转换成字符 c += cipher # 将加密后的字符拼接到密文字符串中 i += 1 # 计数器加1 print(c) # 输出密文字符串 ``` 执行以上代码输出结果为"khoor",也就是"h"变成了"k","e"变成了"h","l"变成了"o","o"变成了"r","l"变成了"o"。 在while循环中,我们使用计数器i来遍历明文字符串s中的每个字符,直到i等于字符串长度为止。这样,我们就可以将明文字符串中的每个字符加密成相应的密文字符,并将加密后的字符拼接到密文字符串c中。在这个过程中,我们还需要注意一些细节,例如字符转换成ASCII码时需要使用ord()函数,ASCII码转换成字符时需要使用chr()函数,以及字符下标从0开始计数等。 ### 回答3: 凯撒密码是古代的一种简单的加密方法,它把明文中的每个字母都按照一个固定的偏移量进行移位,从而得到密文。在Python中,我们可以使用while循环来实现凯撒密码的加密。 首先,我们需要定义一个变量来表示移位量,这个变量可以是任意整数。例如,假设我们选择将明文中的每个字母都向右移动3个位置,那么移位量就是3。 然后,我们需要输入明文,也就是需要加密的文本。我们可以使用input()函数来获取用户输入。 接下来,我们需要定义一个空字符串变量cipher来表示密文,并使用while循环来逐个加密明文中的每个字符。while循环的终止条件是处理完所有的字符。 在循环中,我们需要先判断明文中的字符是否是字母。如果是字母,就需要进行移位操作。我们可以使用ord()函数将字符转换为相应的ASCII码,然后加上移位量,再使用chr()函数将结果转换回字符。注意,如果移位后的字符超出了字母的范围,就需要将其回到字母表的起点或末尾。 如果不是字母,则直接将其加入密文中。 最后,我们输出密文。 以下是凯撒密码加密的代码示例: ``` # 定义移位量 shift = 3 # 获取明文 plain_text = input("请输入明文:") # 加密明文 cipher = "" i = 0 while i < len(plain_text): # 判断当前字符是否是字母 if plain_text[i].isalpha(): # 对字母进行移位操作 ascii_code = ord(plain_text[i]) + shift if plain_text[i].isupper(): if ascii_code > ord('Z'): ascii_code -= 26 elif plain_text[i].islower(): if ascii_code > ord('z'): ascii_code -= 26 cipher += chr(ascii_code) else: cipher += plain_text[i] i += 1 # 输出密文 print("加密后的密文是:", cipher) ``` 以上就是使用while循环实现凯撒密码加密的详细过程。当然,这只是凯撒密码的一个简单实现,如果要更加安全和复杂的加密,可以使用更加高级的加密算法和密钥管理方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值