Python入门01——基础知识及字符串、while、if练习题

本文介绍了Python的基础知识,包括两种执行方式、Unicode与UTF-8编码、注释、数据类型(数字与字符串)、条件语句(if和for循环)。同时,提供了多个编程练习题,涵盖数字转换、字符串操作、条件判断、循环控制等方面,旨在帮助读者巩固Python编程基础。
摘要由CSDN通过智能技术生成

一、Python基础知识

1. python的两种执行方式

python有两种执行方式:①python解释器 cmd下py 文件路径:
在这里插入图片描述
②cmd下直接python进入解释器,实时输入并获取执行结果:
在这里插入图片描述

2. 内容编码

ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode。Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2^16 = 65536。
UTF-8,是对Unicode编码的压缩和优化,它不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存…即能少则少。
显示的告诉python解释器,用什么编码来执行源代码:# -- coding: utf-8 --

3. 注释

单行注释:# 被注释内容
多行注释:""" 被注释内容 “”"

4. 简单的数据类型
4.1 数字

①将字符串转换为数字:

a = "123"
print(type(a))
b = int(a)
print(type(b))
# <class 'str'> 
# <class 'int'>

②进制转换:

num = "0011"
v = int(num, base=2) //将num的值以二进制转换为int型的值
print(v)
# 结果为:3

③bit_length()方法

age1 = 5  //5的二进制表示为101
age2 = 10  //10的二进制表示为1010
r1 = age1.bit_length()  //该方法求出该数字至少可用几位二进制数表示
r2 = age2.bit_length()
print(r1,r2)
# 结果为:3 4

④补充:a=2**3——>2的三次方

4.2 字符串
name=”alex”
name=’alex’

字符串可以进行加法、减法。

# 加法
n1=”zhai”
n2=”yuxin”
n3=n1+n2——>n3=”zhaiyuxin”
# 乘法
n1=”zhai”
n2=n1*2——>n2=”zhaizhai”

字符串也可以通过索引和切片取值。

#索引、下标获取字符串中的某一个字符
test = “zhaiyuxin”
v = test[1]--------->结果为h
#切片
v = test[0:1]--------->结果为z (0<=x<1)
v = test[0:-1]--------->结果为zhaiyuxi (直接到最后一个位置)
5. if 条件语句
if name == "alex"print "超级管理员"
elif name == "eric":
    print "普通管理员"
elif name == "tony" or name == "rain":
    print "业务主管"
else:
    print "普通用户"

补充一个小知识点:

if 1==1:
    pass  //代指空代码块,表示什么都不做
else:
    print(‘zhai’)
6. for 循环
test = "张艺兴"
for item in test:
    print(item)
# 张
# 艺
# 兴

range() 用来创建连续的数字,值的区间为左闭右开。v = range(3) 等价于 v = range(0,3),放入for循环输出结果为 0 1 2
range也可以通过设置步长指定不连续数字

v = range(0,5,2)  # 间隔2创建不连续数字
输出结果为:0 2 4 

若我们想要实现将用户输入的内容以及其索引下标打印出来,就可以用range为用户输入的内容内容赋予下标,具体实现如下所示:

test  = input("<<<")
print(test)
len = len(test)
v = range(0,len)
for item in v:
    print(item,test[item])

运行结果为:
在这里插入图片描述

二、练习题及答案

【例1】使用while循环输入1 2 3 4 5 6 7 8 9 10

  i=1
  while i<=10:
      input("输入一个数字:")
      i=i+1

【例2】求1-100的所有数的和。

  i = 1
  sum = 0
  while i<=100:
      sum = sum + i
      i = i + 1
  print(sum)

【例3】输出 1-100 内的所有奇数。

  i = 0
  while i<=99:
      i = i + 1
      if i%2==1:
          print(i)
      else:
          continue

【例4】输出 1-100 内的所有偶数。

  i = 0
  while i<=99:
      i = i + 1
      if i%2==0:
          print(i)
      else:
          continue

【例5】求1-2+3-4+5 … 99的所有数的和。

  i = 0
  sum = 0
  while i <= 98:
      i = i + 1
      if i%2 == 1:
          sum = sum + i
      else:
          sum = sum - i
  print(sum)

【例6】用户输入用户名和密码登陆(三次机会重试)

time = 1
while time <= 3:
    name = input("Please input your name:")
    pwd = input("Please input your password:")
    if time <=2:
      if name =="zhai" and pwd == "z000":
         print("Welcome your zone!")
         break
      else:
         print("Error! Please try again!")
         time = time + 1
         continue
    if time == 3: #太过累赘,待优化
        if name == "zhai" and pwd == "z000":
            print("Welcome your zone!")
            break
        else:
            print("Error! Your chance have gone! ")
            break

【例7】将用户输入的字符串及每一个字符对应的下标打印出来。

  test  = input("<<<")
  print(test)
  len = len(test)
  v = range(0,len)
  for item in v:
      print(item,test[item])

【例8】实现一个整数加法计算器,用户输入“5+9”或“5 +9”或“5 + 9”都能正确计算其结果。

  value = input("请输入加法式:")
  v1,v2 = value.split("+") #用加号来分割字符,前面一部分给v1,后半部分给v2
  v1 = int(v1)
  v2 = int(v2)
  print(v1+v2)

【例9】计算用户输入的内容中有几个数字和字母。

  value = input("请输入一段字符:")
  i_time = 0
  s_time = 0
  for item in value:
      if item >= '0' and item <= '9':
          i_time = i_time + 1
      if item >= 'a' and item <= 'z':
          s_time = s_time + 1
  print("该字符串中数字的个数为:")
  print(i_time)
  print("该字符串中字母的个数为:")
  print(s_time)

【例10】简单的趣味模板程序,例如敬爱可亲的XXX,最喜欢在XX地方XX。

  temp = "敬爱可亲的{0},最喜欢在{1}地方{2}"
  name = input("<<<输入姓名:")
  addr= input("<<<输入地点:")
  thing = input("<<<输入事件:")
  v = temp.format(name,addr,thing) #按0、1、2的顺序依次替换temp中的{}
  print(v)

【例11】制作随机验证码(不区分大小写)并判断用户输入的结果是否正确。

def check_code():
    import random
    checkcode = ''
    for i in range(4):
        current = random.randrange(0, 4)
        if current != i:
            temp = chr(random.randint(65, 90))
        else:
            temp = random.randint(0, 9)
        checkcode += str(temp)
    return checkcode

while True:
    code = check_code()
    print(code)
    v = input("<<<")
    if code.lower() == v.lower():
        print("输入正确!")
        break
    else:
        print("输入错误!")
        break

【例12】替换敏感词,若用户输入的内容中有“卧槽”、“滚”敏感词,替换为“***”

  value = input("<<<")
  value = value.replace("卧槽", "***") #体会replace的用法
  value = value.replace("滚", "***")
  print(value)

【例13】制作简易表格。循环提示用户输入用户名、密码、电话号码(要求用户输入的长度不超过20个字符,如果超过则只有前20个有效),如果用户输入Q或q则表示不再继续输入,将用户输入的内容以表格形式打印。

s = ""
while True:
    name = input("请输入用户名:")
    if name == 'Q' or name == 'q':
        break
    pwd = input("请输入密码:")
    tel = input("请输入手机号:")
    temp = "{0}\t{1}\t{2}\n" #表格样式
    v = temp.format(name[0:20], pwd[0:20], tel[0:20]) #只取前20个字符
    s = s + v #将每一轮的结果拼接起来成简易表格
    print(s) #输出该表格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值